在 SFML 中有几种类型的对象(sf::Shape、sf::Sprite、sf::Text)继承了抽象基类 sf::Drawable。如果我创建一个 std::vector 我可以将所有继承 sf::Drawable 类的对象存储在该向量中吗?
user768417
问问题
846 次
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 类的对象存储在该向量中吗?
是的,你可以这么做。然后你需要一个指针向量(因为你不能实例化抽象类)。
于 2013-07-17T19:26:00.920 回答