【发布时间】:2013-02-26 05:51:18
【问题描述】:
考虑一个简单的类:
class SimpleClass {
int a;
public:
SimpleClass():a(0){}
SimpleClass(int n):a(n){}
// other functions
};
SimpleClass *p1, *p2;
p1 = new SimpleClass[5];
p2 = new SimpleClass(3);
在这种情况下,调用默认构造函数 SimpleClass() 来构造 p1 的新分配对象和 p2 的参数化构造函数。我的问题是:是否可以分配一个数组并使用 new 运算符使用参数化构造函数?例如,如果我希望使用变量 a 值分别为 10、12、15、... 的对象初始化数组,是否可以在使用 new 运算符时传递这些值?
我知道使用 stl vector 是处理对象数组的更好主意。我想知道上面是否可以使用 new 来分配数组。
【问题讨论】:
-
您可以使用初始化列表,尽管它不能很好地扩展。使用向量,它只是一个大小+值的构造函数。