向量和抽象类

时间:2013-07-17 19:21:31

标签: c++ vector abstract-class

在SFML中,有几种类型的对象(sf :: Shape,sf :: Sprite,sf :: Text)继承了抽象基类sf :: Drawable。如果我创建一个std :: vector,我可以存储在该向量中继承sf :: Drawable类的所有对象吗?

4 个答案:

答案 0 :(得分:2)

您无法创建抽象类的对象,因此无法将它们存储在向量中。但是,您可以在向量中存储指向这些对象的指针。

答案 1 :(得分:2)

如果您创建一个std::vector来存储某种形式的指针(理想情况下是智能指针),您可以这样做。

答案 2 :(得分:1)

是的,如果您将矢量声明为

,则可以
std::vector <sf::Drawable*> 

基于此基类的对象上的任何指针都可以存储在向量中。

答案 3 :(得分:0)

  

如果我创建一个std :: vector,我可以存储在该向量中继承sf :: Drawable类的所有对象吗?

是的,你可以这样做。那么你需要一个指针向量(因为你不能实例化抽象类)。

相关问题