问题:
c++中有带参数构造函数的类,new对象数组的时候怎么设置构造参数?
比如
class User
{
int m_age;
public:
User( int a_age ):m_age(a_age){}
};
User *l_us = new User[6];// 怎么把参数放进去呢
解决方法:
int l_age = 10000;
// 分配内存
User *l_us= (User*)operator new(6*sizeof(User));
for (int i = 0; i < 6; ++i)
{
// 初始化对象
new (l_us+i)User(l_age);
}
先分配内存,再初始化对象。
在C++中,如果类有带参数的构造函数,创建对象数组时不能直接通过new运算符初始化参数。正确做法是先分配内存,然后逐个使用placement new进行初始化。例如,对于User类,可以先分配User对象的内存,然后通过循环对每个对象进行初始化,传入所需的参数。

803

被折叠的 条评论
为什么被折叠?



