C ++,没有Stl&的对象数组(来自不同的类)促进

时间:2012-02-19 19:26:36

标签: c++ arrays

我想在C ++中创建一个可以容纳不同类对象的数组。

这是我家庭任务的一部分,其中一个条件是我不能使用Stl,Boost&等

3 个答案:

答案 0 :(得分:1)

您应该创建Base类并从Base类派生您的类。因此,您可以创建数组Base*数组并将所有派生类放在那里。

答案 1 :(得分:1)

您可以在数组中存储指向void*的指针,并将对象转换为void*。但你不应该这样做!

如果可能,您应该从基类派生所有对象并存储指向Base*的指针。这是解决这个问题的更好方法。

答案 2 :(得分:0)

同一个容器是否必须同时保存相同类型的对象?如果是这样,它是否必须能够持有任何类型?如果是这样,您唯一的解决方案是使用void*并存储指向您要存储的对象的指针。

如果一个容器只需要保存一种类型的对象,那么您可以使用模板执行此操作。如果同一容器必须包含不同类型的对象,则可以对它可以容纳的类型设置限制,那么您可以要求它来自某个Base类,并且制作一个Base*数组。