C ++将一个对象传递给一个函数,operator =不会被调用
所以这里是代码片段:
class MyClass {public:MyClass(char chIn){std :: cout <<“构造函数!” << std :: endl; }
MyClass&operator =(char chIn){std :: cout <<“Assigment operator!” << std :: endl; }};
void Func(MyClass objIn){return; }
int _tmain(int argc,_TCHAR * argv []){Func('T'); 系统( “暂停”); 返回0; }
在上面的例子中,该对象的构造函数被称为!!!! 这是为什么? 不应该调用分配操作符吗? 因为我们正在为函数参数赋值,是不是?
operator =调用已存在的对象,否则使用构造函数(或复制构造函数)创建所需的实例
链接地址: http://www.djcxy.com/p/73087.html上一篇: C++ passing an object to a function, the operator= is not called