我有一個struct simple_instr,我無法修改。我創建一個從它派生類型爲這樣:如何判斷指針是否指向派生類型的實例?
struct ComplexInstruction : simple_instr
{
ComplexInstruction(const simple_instr& simple) : simple_instr(simple)
{
}
bool isHead;
bool isTail;
bool isPreHeader;
};
我希望能夠告訴simple_instr的實例是否實際上是一個ComplexInstruction。我創建ComplexInstructions像這樣:
ComplexInstruction comInstr = *current; // current is a pointer to a simple_instr
ComplexInstruction* cInstr = &comInstr;
我嘗試使用 ComplexInstruction* cInstr = static_cast<ComplexInstruction*>(current);
並檢查它是否等於空,但問題是,中投一直成功,cInstr是永遠等於空。
這樣做的正確方法是什麼?
基類是多態的嗎? (即它是否有任何虛擬成員函數?) – 2011-02-07 04:51:43
不,不幸的是 – Megatron 2011-02-07 04:55:11