0
我試圖從接口向下傾倒派生類,但我的虛擬殺手它?虛擬接口Dtor && Dynamic_Cast
class IFOO
{
public:
virtual ~IFOO(){};
virtual size_t index() PURE;
};
class FOO : public IFOO
{
public:
FOO() : size(5){};
~FOO(){};
virtual size_t index(){ return index; };
size_t index;
};
int main() {
IFOO* A = &FOO();
FOO* B = dynamic_cast< FOO* >(A);
return 0;
}
這是爲什麼?
請描述預期的行爲和你所得到的行爲。 – 2011-01-19 22:17:58
我啓用了RTTI,因此我期望執行運行時檢查並對派生類進行強制轉換。我一直得到一個NULL指針,除非我從我的界面中刪除虛擬Dtor。 – 2011-01-19 22:21:44