小编Iva*_*asa的帖子

允许为所有数组元素调用任何构造函数

经过一些调查,看起来行为初始化变量遵循一些约定.

对于单个元素:

auto* x = new int; // undefined value
auto* x = new int{}; // 0 (default initializer)
auto* x = new int(23); // 23 (copy initializer)

auto* x = new Test; // default constructor
auto* x = new Test{}; // default constructor
auto* x = new Test(...); // X constructor (overload-chosen)
Run Code Online (Sandbox Code Playgroud)

这很有意义,直到您尝试在数组上应用相同的逻辑:

auto* x = new int[10]; // all undefined values - OK
auto* x = new int[10]{}; // all 0 (default initializer) - OK
auto* x = …
Run Code Online (Sandbox Code Playgroud)

c++

8
推荐指数
1
解决办法
539
查看次数

标签 统计

c++ ×1