毛线。
int a(d)和int a{d}是等价的,都是直接初始化,使用类型转换。
int是没有所谓构造函数的。
你为啥不试试自己定义一个类,然后看:
T a(...);
T b{...};
是不是都能调用构造函数?
【 在 foliver (Oliver) 的大作中提到: 】
: 标 题: Re: 没搞明白 {} 初始化
: 发信站: 水木社区 (Tue Jul 27 18:36:44 2021), 站内
:
: 当然有关系。
: 小括号匹配构造函数。所以不用报警。
:
: 再举个例子。
: struct T{ int a; std::string b; };
:
: T t{1,"a"} 就不需要构造函数。
你这是集合初始化,又是另一个东西了。
:
:
: 【 在 here080 的大作中提到: 】
: : 另外,就看你写的这两行,它跟构造函数一毛钱关系没有。它就是两个类型转换。
: : 是否报警取决于编译器。我觉得这两个情况都应该报警。看编译器选项吧。
: : 【 在 foliver (Oliver) 的大作中提到: 】
: : ...................
: --来自微水木3.5.11
: --
:
: ※ 来源:·水木社区
http://m.mysmth.net·[FROM: 140.206.195.*]
--
FROM 76.126.252.*