0

所以这里是代码片段:

类 MyClass { public: MyClass(char chIn) { std::cout << "构造函数!" << std::endl; }

MyClass & operator= (char chIn) { std::cout << "赋值运算符!" << std::endl; } } ;

void Func(MyClass objIn) { return; }

int _tmain(int argc, _TCHAR* argv[]) { Func('T'); 系统(“暂停”);返回0;}

在上面的例子中,对象的构造函数被调用!!!!为什么会出现这种行为?不应该调用赋值运算符吗?因为我们正在为函数参数赋值,不是吗?

4

1 回答 1

1

operator= 为已经存在的对象调用,否则构造函数(或复制构造函数)用于创建所需的实例

于 2013-08-21T10:55:13.520 回答