作为一个例子说我有一个没有默认构造函数但没有默认构造函数的类foo
foo:foo(int _varA,int _varB)
{
m_VarA = _varA;
m_VarB = _varB;
}
我如何分配这些数组。
我似乎记得尝试这样的事情失败了。
foo* MyArray = new foo[100](25,14).
我认为这也无效。
foo* MyArray = new foo[100](25,14)
可以这样做吗?我通常通过使用_varA和_varB的一些预设值来编写默认构造函数来完成此操作。然后添加一个函数来为每个元素重置_varA和_varB,但这不适用于这种情况。
感谢您的帮助。
答案 0 :(得分:5)
您的首选应该是忽略new[]
甚至存在的事实,而是使用std::vector
代替:
std::vector<foo> MyArray(100, foo(25,14));
答案 1 :(得分:2)
如果要能够分配类的数组(直接使用new[]
),则该类必须具有默认构造函数。没有默认构造函数,没有动态数组。