我想在C ++中创建一个可以容纳不同类对象的数组。
这是我家庭任务的一部分,其中一个条件是我不能使用Stl,Boost&等
答案 0 :(得分:1)
您应该创建Base类并从Base类派生您的类。因此,您可以创建数组Base*
数组并将所有派生类放在那里。
答案 1 :(得分:1)
您可以在数组中存储指向void*
的指针,并将对象转换为void*
。但你不应该这样做!
如果可能,您应该从基类派生所有对象并存储指向Base*
的指针。这是解决这个问题的更好方法。
答案 2 :(得分:0)
同一个容器是否必须同时保存相同类型的对象?如果是这样,它是否必须能够持有任何类型?如果是这样,您唯一的解决方案是使用void*
并存储指向您要存储的对象的指针。
如果一个容器只需要保存一种类型的对象,那么您可以使用模板执行此操作。如果同一容器必须包含不同类型的对象但,则可以对它可以容纳的类型设置限制,那么您可以要求它来自某个Base
类,并且制作一个Base*
数组。