C++:我可以将子对象放入父对象数组中吗? [复制]
Posted
技术标签:
【中文标题】C++:我可以将子对象放入父对象数组中吗? [复制]【英文标题】:C++: Can I put a child object into an array of parent objects? [duplicate] 【发布时间】:2017-01-13 22:17:59 【问题描述】:假设我有一个名为“Tile”的类
class Tile
private:
int x, y;
;
还有一个名为“门”的类,它扩展了“瓷砖”
class Door : Tile
private:
bool open;
;
我可以创建一个 Tile 对象数组,例如创建一个房间,然后在同一个数组中包含一个 Door 对象,因为它是 Tile 的扩展?如果没有,我可以使用其他方法来完成此操作吗?
【问题讨论】:
【参考方案1】:我可以将子对象放入父对象数组中吗?
没有。
T
类型的对象始终是 T
类型,永远不会是其他类型,即使该类型是相关的。数组总是包含一种类型的对象。
如果没有,我可以使用任何替代方法来完成此操作吗?
引用T&
和指针T*
可以引用其类型派生自T
的对象。但是,您不能将引用存储在数组中。所以,你可以使用一个指针数组。
也许最简单和最灵活的选择是共享指针数组:
std::shared_ptr<Tile> tiles[10];
【讨论】:
以上是关于C++:我可以将子对象放入父对象数组中吗? [复制]的主要内容,如果未能解决你的问题,请参考以下文章