有以下类(class):
class mem
{
private:
int data;
public:
mem(){}
mem(int a)
{
data=a;
}
void dataDis()
{
cout <<"valu of i is "<< data << endl;
}
};
如何使用参数化构造函数和new运算符为该类的10个对象分配内存?
最佳答案
既然你说你需要直接使用new
,那么你可以轻松地为十个单独的对象做到这一点:
mem * mem1 = new mem(42);
// and so on
使用new
分配数组时不能指定初始化器;您必须让它们默认初始化,然后重新分配它们:
mem * mems = new mem[10];
mems[0] = mem(42);
// and so on
不要忘记将它们分配给智能指针(或者在使用完它们后删除它们,如果使用 new
的奇怪要求也禁止其他形式的合理内存管理)。
当您发现自己在不那么疯狂的限制下工作时,请使用 std::array
或 std::vector
而不是乱搞原始内存分配:
std::vector<mem> mems = {42, 63, /* and so on */};
关于c++ - 如何在C++中使用new为类动态分配内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16460246/