【发布时间】:2014-10-19 01:29:07
【问题描述】:
我发现另一个很久以前回答的问题,并没有真正理解其中一个答案。 Eddie's answer,在他的回答中他说如果你使用String mystring = 'x';,那么x 将被转换为一个整数并调用String(int)。为什么这个语句调用构造函数?我认为为了使用构造函数,您必须使用像String mystring('x') 这样的语句。赋值运算符= 是否等同于创建对象的新实例?
【问题讨论】:
-
= 不是该语句中的运算符。
-
@chris 你能解释一下
=在那个声明中是什么吗?我一直认为它是将左侧分配给右侧。 -
它根本不是运算符,只是同一符号的另一种用法。就像如果
f是一个函数,f(a,b)不使用逗号运算符,或者int *p不使用解引用运算符或乘法运算符。这称为复制初始化。 -
@chris 我很难找到这方面的文档,比如如果有一个接受 2 个参数的构造函数,在这种情况下是否可以使用
=?
标签: c++ class object constructor explicit