【发布时间】:2016-10-06 04:58:33
【问题描述】:
我已经阅读了很多关于使用大括号进行初始化的解释:
PhoneNumber homePhone = {858, 555, 1234};
还有
int x2 = val; // if val==7.9, x2 becomes 7 (bad)
char c2 = val2; // if val2==1025, c2 becomes 1 (bad)
int x3 {val}; // error: possible truncation (good)
char c3 {val2}; // error: possible narrowing (good)
char c4 {24}; // OK: 24 can be represented exactly as a char (good)
char c5 {264}; // error (assuming 8-bit chars): 264 cannot be
// represented as a char (good)
但是,我在这里遇到了一些我找不到示例的代码,也许我不知道这个术语,所以我可以谷歌它:
auto ac1 = ArrayClass{};
我已经习惯了
ArrayClass ac1 = new ArrayClass();
首先是:
auto ac1 = ArrayClass{};
同
ArrayClass ac1 = ArrayClass{};
其次,
如果我在构造函数中使用了初始化列表,我是否只允许使用大括号?
最后,如果我有参数,以下是否正确?
auto ac1 = ArrayClass{1,4,"hi", true}
感谢您的帮助
【问题讨论】:
标签: c++ object initialization