假设我有一个名为' Tile'
的课程class Tile
{
private:
int x, y;
};
一个叫做“门”的课程。延伸' Tile'
class Door : Tile
{
private:
bool open;
};
我可以创建一个Tile对象数组,例如创建一个房间,然后在同一个数组中有一个Door对象,因为它是Tile的扩展名吗?如果没有,我可以用它来做到这一点吗?
答案 0 :(得分:1)
我可以将子对象放入父对象数组中吗?
没有
T
类型的对象始终是T
类型,从不是另一种类型,即使该类型是相关的。数组总是包含一种类型的对象。
如果没有,我可以用它来做到这一点吗?
引用T&
和指针T*
可以引用其类型派生自T
的对象。但是,您无法在数组中存储引用。所以,你可以使用指针数组。
也许最简单和最灵活的选择是共享指针数组:
std::shared_ptr<Tile> tiles[10];