new对象数组的时候怎么设置构造函数参数

在C++中,如果类有带参数的构造函数,创建对象数组时不能直接通过new运算符初始化参数。正确做法是先分配内存,然后逐个使用placement new进行初始化。例如,对于User类,可以先分配User对象的内存,然后通过循环对每个对象进行初始化,传入所需的参数。

问题:
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);
}

先分配内存,再初始化对象。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值