3

SFML には、抽象基本クラス sf::Drawable を継承するいくつかのタイプのオブジェクト (sf::Shape、sf::Sprite、sf::Text) があります。std::vector を作成した場合、sf::Drawable クラスを継承するすべてのオブジェクトをその vector に格納できますか?

4

4 に答える 4

2

抽象クラスのオブジェクトを作成できないため、それらをベクトルに格納することはできません。ただし、これらのオブジェクトへのポインターをベクターに格納することはできます。

于 2013-07-17T19:25:38.150 に答える
2

std::vector何らかの形式のポインター(理想的にはスマート ポインター) を格納する を作成すると、それを行うことができます。

于 2013-07-17T19:25:44.107 に答える
1

はい、ベクトルを次のように宣言すればできます

std::vector <sf::Drawable*> 

この基本クラスに基づくオブジェクトの任意のポインターをベクターに格納できます。

于 2013-07-17T19:27:09.050 に答える
0

std::vector を作成した場合、sf::Drawable クラスを継承するすべてのオブジェクトをその vector に格納できますか?

はい、できます。その場合、ポインターのベクトルが必要になります (抽象クラスをインスタンス化できないため)。

于 2013-07-17T19:26:00.920 に答える