【发布时间】:2018-11-21 16:12:11
【问题描述】:
如果我动态创建对象数组,那么如何初始化实例数据成员。因为在使用 new 关键字时,只能提及数组维度,而不能提及构造函数的参数。
【问题讨论】:
-
使用
std::vector并保持理智。
标签: c++ arrays constructor new-operator
如果我动态创建对象数组,那么如何初始化实例数据成员。因为在使用 new 关键字时,只能提及数组维度,而不能提及构造函数的参数。
【问题讨论】:
std::vector 并保持理智。
标签: c++ arrays constructor new-operator
因为在使用 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++ 中,您应该仅在您自己的代码中非常罕见 的情况下使用new 和delete。这些非常先进,您必须 100% 确定您的用例确实需要这样做。
通常根本不需要手动管理内存,c++标准库提供
让您摆脱手动动态内存管理的所有陷阱。
只需使用那些东西,任何要求你做其他事情的人很可能是无能的,或者被神话所愚弄,说使用标准库中的东西会对性能产生重大影响。
【讨论】: