正如标题所说,有没有办法用new创建一个动态大小的对象数组,这个条件我不想调用默认的构造函数?
类似的东西:
myclass* myarray = new myclass(firstArgument, secondArgument)[32];
答案 0 :(得分:1)
最简单的方法是不使用new
,而是使用std::vector
,它具有可以复制构造向量元素的构造函数。在大多数情况下,这将是推荐的方式。需要动态分配的数组而不是向量是一种非常罕见的情况。
如果 使用new(无论出于何种原因),那么一种方法是分配原始内存,将其转换为对象类型,然后使用std::uninitialized_fill()
复制就地建立你的价值观。
答案 1 :(得分:0)
如果你需要一个动态数组,你可以使用vector,这也将取消你的内存管理。
答案 2 :(得分:0)
似乎没有办法(或至少简单的方法)做到这一点(新的)。
经过大量搜索后,我想出了这个解决方案: USE VECTOR CLASS
实际上忘了新的和你的典型项目,使用矢量。它有很多好处。