2012-02-19 54 views
0

我想在C++中创建一个可以容纳不同类对象的数组。C++,对象数组(来自不同类)不使用Stl&Boost

这是我hometask和条件之一的部分是,我不能使用STL,升压&等

+2

这是一个问题和答案网站,你的问题有点低。 – 2012-02-19 19:30:16

+0

从字面上看,这是不可能的,因为一个*数组*根据定义只能是一个固定类型的对象数组。 – 2012-02-19 19:54:28

+0

你被教过关于这个功课的课程是什么?持有不同类别的对象是不常见的,因为您无法统一处理它们,除非您使用继承或模板?那是你在学什么? – 2012-02-19 21:36:26

回答

1

您应该创建基类并从中获得基类的类。因此,您可以创建数组Base*数组并放置所有派生类。

1

您可以在阵列中存储指向void*的指针,并将对象投射到void*。但你不应该这样做!

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

0

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

如果一个容器只能容纳一种类型的对象,那么你可以使用模板来做到这一点。如果同一个容器必须容纳不同类型的对象但是您可以对其可容纳的类型设置限制,那么您可以规定它来自某个Base类,并且创建一个Base*的数组。

相关问题