c++ - 如何在C++中使用new为类动态分配内存?

标签 c++ linux

有以下类(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::arraystd::vector 而不是乱搞原始内存分配:

std::vector<mem> mems = {42, 63, /* and so on */};

关于c++ - 如何在C++中使用new为类动态分配内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16460246/

相关文章:

c++ - 需要帮助理解未在范围内声明的对象

C++ printf 字段宽度说明符 ‘.*’ 需要 int 而不是 size_t

linux - 如何在 Linux 上调试实时应用程序?

linux - 用于在 Linux 中通过 Web 浏览器访问和开发的独立程序

无法通过 system() 从程序中设置 "echo"文件

linux - 目录被过早删除

c++ - 源文件中的嵌套类定义

c++ - 在 C++ 的异常层次结构中引入额外的基类型?

c# - 从 C++ DLL 获取 char * 到 C# 应用程序

javascript - 如何在 Linux Chrome 中获取键修饰符