0

正如标题所说,有没有办法用new创建一个动态大小的对象数组,在这种情况下我不想调用默认构造函数?

就像是 :

myclass* myarray = new myclass(firstArgument, secondArgument)[32]; 
4

3 回答 3

1

最简单的方法是不使用new而是使用std::vector具有可以复制构造向量元素的构造函数的构造函数。在大多数情况下,这将是推荐的方式。需要动态分配的数组而不是向量是非常罕见的情况。

如果您必须使用 new (无论出于何种原因),那么执行此操作的一种方法是分配原始内存,将其转换为您的对象类型,然后用于std::uninitialized_fill()复制就地构造您的值。

于 2013-08-14T15:21:01.177 回答
0

似乎没有办法(或至少是简单的方法)来做到这一点(用新的)。

经过大量搜索,我想出了这个解决方案:

 USE VECTOR CLASS

实际上忘记新的,对于您的典型项目,请使用矢量。它有很多好处。

于 2013-08-15T11:03:35.750 回答
0

如果您需要一个动态数组,您可以使用向量,这也将让您无需进行内存管理。

矢量 c++ 参考

于 2013-08-14T15:19:05.713 回答