【发布时间】:2013-05-26 09:00:40
【问题描述】:
我不确定如何在自己的类中创建对象数组。例如:
class A {
public:
const static int MAX_SIZE = 10;
private:
A arrayOfOBjects[MAX_SIZE];
}
我收到一条错误消息,提示“现在允许使用不完整的类型”我该如何处理?如果我在 A 类中声明另一个类的对象数组,它将起作用.. 但是如何在其自己的类中创建对象数组?
【问题讨论】:
-
一个类不能包含它自己类型的成员。您需要保存一组指向
A的智能指针。 -
@juanchopanza
std::array<A, MAX_SIZE>呢? -
@PeterWood 那也不应该工作。但是
std::vector<A>可以。 -
@PeterWood 因为
std::array是固定大小的 C 数组的无开销替代品,所以它保存的所有数据都是它的元素。它不能有指向某个动态分配的内存的指针。
标签: c++ arrays class object declare