C ++:我可以将子对象放入父对象数组中吗?

时间:2017-01-13 22:18:00

标签: c++ arrays parent-child

假设我有一个名为' Tile'

的课程
class Tile 
{
    private:
        int x, y;
};

一个叫做“门”的课程。延伸' Tile'

class Door : Tile
{
    private:
        bool open;
};

我可以创建一个Tile对象数组,例如创建一个房间,然后在同一个数组中有一个Door对象,因为它是Tile的扩展名吗?如果没有,我可以用它来做到这一点吗?

1 个答案:

答案 0 :(得分:1)

  

我可以将子对象放入父对象数组中吗?

没有

T类型的对象始终是T类型,从不是另一种类型,即使该类型是相关的。数组总是包含一种类型的对象。

  

如果没有,我可以用它来做到这一点吗?

引用T&和指针T*可以引用其类型派生自T的对象。但是,您无法在数组中存储引用。所以,你可以使用指针数组。

也许最简单和最灵活的选择是共享指针数组:

std::shared_ptr<Tile> tiles[10];