-6

有以下课程:

class mem
{
  private:
        int data;
  public:
        mem(){}
        mem(int a)
        {
                data=a;
        }
        void dataDis()
        {
                cout <<"valu of i is "<< data << endl;
        }

};

如何使用参数化构造函数和 new 运算符为此类的 10 个对象分配内存?

4

1 回答 1

2

既然你说你需要new直接使用,那么你可以很容易地为十个单独的对象做:

mem * mem1 = new mem(42);
// and so on

new使用;分配数组时不能指定初始化器 您必须让它们默认初始化,然后重新分配它们:

mem * mems = new mem[10];
mems[0] = mem(42);
// and so on

不要忘记将它们分配给智能指针(或者在完成它们后删除它们,如果使用的奇怪要求new也禁止其他形式的合理内存管理)。

当您发现自己在不那么疯狂的限制下工作时,请使用std::arraystd::vector代替原始内存分配:

std::vector<mem> mems = {42, 63, /* and so on */};
于 2013-05-09T11:22:56.270 回答