1
問題是:
a)以下代碼是否合法? (考慮到它在運行時崩潰)
b)如果在編譯時有任何編譯器標誌讓gcc或MVC顯示,那麼在下面的代碼中可能存在一個問題?C++動態綁定問題
#include <iostream>
using namespace std;
class A
{
public:
void write(){ cout<<"A"; }
};
class B
{
public:
virtual void write(){ cout<<"B"; }
};
int main()
{
A *pa=(A*) new B();
pa->write();
B *pb=(B*) new A() ;
pb->write();
delete pa;
delete pb;
return 0;
}
謝謝!
另外,你是C風格的鑄造,請嘗試C++鑄造操作員 – 2011-01-26 14:58:12
@baris:這不是*暗示*鑄造! – 2011-01-26 14:59:24