如何初始化动态对象数组



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

因为在使用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++标准库提供

  • 容器类的广泛集合
  • 许多智能指针类

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

最新更新