1

フレームワーク内の 2 つの組み込みクラスから拡張されている新しいクラスをプログラムに作成しようとしています。

class Node{
    setPosition();
    draw();
};

class Rectangle{
    setPosition();
    draw();
};

class CustomShape : public Node, public Rectangle{

};

メインプログラムで、次のようなものを書き込もうとするCustomShape aと、

a.setPosition();
a.draw();

あいまいな呼び出しでコンパイル時エラーが発生します。どうすればこれを解決できますか?

4

1 に答える 1

3

明示的な修飾を追加します。

a.Node::setPosition();
a.Rectangle::setPosition();

a.Node::draw();
a.Rectangle::draw();

または、キャストを挿入することもできます:

static_cast<Node&>(a).setPosition();

しかし、それはあまり魅力的ではありません。

于 2012-12-23T17:13:45.120 に答える