私はこれについて多くのことを読みましたが、Player
オブジェクトが機能を失っている理由を理解できませんdraw
。
オブジェクトクラス:
class Object {
public:
Object(){}
Object(Object* o){
o->draw();
}
virtual void draw() { cout << "Object draw" << endl; }
};
プレイヤークラス:
class Player : public Object {
public:
Player() : Object(this) {}
void draw(){ cout << "Player draw" << endl; }
};
このコードを実行すると:
int main(){
Object o;
Player p;
}
出力は次のとおりObject draw
です。Player draw
オブジェクトがオーバーライドされていないか、関数を通過するときにオブジェクトがスライスされていると予想されます。