1

このコードは機能しません。

class Collidable{
   public:
   virtual Vec2 Pos()=0;
};

class Square{
    Vec2 pos;
    public:
    Vec2 Pos(){
        return pos;
    }
};
class Box:public Square,public virtual Collidable{

};
main(){
    Box bla;
   cout<<bla.Pos()<<endl;
}

しかし、これを行うとうまくいきます。

class Box:public Square,public virtual Collidable{
   public:
    Vec2 Pos(){
        return Square::Pos();
    }
}

私の問題は、Square のようなクラスがあり、Pos() のような関数がたくさんあることです。このようなことを述べる必要はないと本当に感じています。

    Vec2 Pos(){
        return Square::Pos();
    }

これが、別のクラスから継承するときのデフォルトの動作であると私が考えていたものである場合、すべての単一の関数に対して何度も何度も。ここで多くの冗長な入力を避けるにはどうすればよいでしょうか? また、Pos() の定義が 1 つしかないのに、Pos() を呼び出すことの何がそんなに曖昧なのでしょうか?

4

1 に答える 1