0
作爲一名Java程序員和一名C++ noob,我在C++中處理繼承困難。現在,我有這樣的:C++繼承和多態性
class Parent {
public:
Parent() {}
virtual std::string overrideThis() { }
};
class Child : public Parent {
public:
std::string attribute;
Child(const std::string& attribute) : attribute(attribute) { }
std::string overrideThis(){
std::cout << "I'm in the child" << std::endl;
return attribute.substr(1, attribute.size()-2);
}
};
而且這個片段在別處:
Child *child = new Child(value);
Child childObject = *(child);
std::cout << "I'm trying this: " << childObject.overrideThis() << endl;
上面的代碼按預期工作被印在屏幕上的消息。但如果不是我試試這個:
Child *child = new Child(value);
Parent childObject = *(child);
std::cout << "I'm trying this: " << childObject.overrideThis() << endl;
我有一個有趣的運行時錯誤,在我的屏幕上有很多有趣的人物。指針使用多態的正確方法是什麼?我想要做的是調用overrideThis()Child
實例
我怎樣才能在參考調用overrideThis()? (對不起,如果是一個天真的問題xD) –
@CarlosGavidia編輯。 –
以哪種方式我可以調用overrideThis()?既不允許我做childObject.overrideThis() –