不要乱说
{}在此处是可以调用构造函数的。
【 在 foliver (Oliver) 的大作中提到: 】
: 标 题: Re: 没搞明白 {} 初始化
: 发信站: 水木社区 (Tue Jul 27 15:43:50 2021), 站内
:
: 你没有搞明白小括号和花括号的区别。
: 对于初始化来说,小括号初始化是调用构造函数来初始化。花括号是直接初始化,不需要经过构造函数。
: 具体到你的例子
: string str("abc")。正常可以这样使用,比如你定义一个局部变量,它查找string的对应使用构造函数,然后调用。但是作为类成员变量时,你要在声明调用一个一个构造函数是不行的,你需要在类初始化调用。所以可以改成
: A():str("abc")
:
: 而string str{"abc"}是直接初始化,不需要调用构造函数,所以可以使用。
:
:
: 【 在 confinement 的大作中提到: 】
: : 意思是从符号上()是函数调用,但是在一些场合可存在歧义,不确定是调用构造函数来定义一个变量,还是声明一个新函数? 从你的举例好像是可能有这么个问题,不过这个例子里不可能是声明一个函数吧
: :
: : 【 在 here080 的大作中提到: 】
: : ...................
: --来自微水木3.5.11
: --
:
: ※ 来源:·水木社区
http://m.mysmth.net·[FROM: 140.206.195.*]
--
FROM 76.126.252.*