0

私はこれについて多くのことを読みましたが、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オブジェクトがオーバーライドされていないか、関数を通過するときにオブジェクトがスライスされていると予想されます。

4

0 に答える 0