如何初始化动态对象数组

时间:2018-11-21 16:12:12

标签: c++ arrays constructor new-operator

如果我动态创建对象数组,该如何初始化实例数据成员呢?因为在使用new关键字时,只能提及数组维度,而不是构造函数的参数。

1 个答案:

答案 0 :(得分:0)

  

因为在使用new关键字时,只能提及数组维度,而不是构造函数的参数。

在c ++语言中,规范的方式是使用std::vector

std::vector<int> array(10, 42);
                //     ^   ^
                //     |   | the value
                //     |  the size

用不同的值初始化std::vector的另一种方法是像这样使用std::initializer_list

std::vector<int> array = { 1, 2 , 3, 4, 5, 6 , 55, 0, -2, 42, -16 };

注意:

在c ++中,仅在您自己的代码中 非常罕见 的情况下,才应使用newdelete。这些功能确实非常先进,您必须100%确保用例确实需要这样做。

通常完全不需要手动内存管理,而c ++标准库提供了

使您摆脱了手动动态内存管理的所有陷阱。
只需使用这些东西,任何要求您做其他事情的人很可能都不称职,或者被神话所迷惑,认为使用标准库中的东西将对性能产生重大影响。