先上代码
#include<iostream>
using namespace std;
class test
{
public:
int t;
test(void)
{
t=0;
}
/*
test& operator=(test& a)
{
this->t = a.t+1;
return *this;
}
*/
};
int main()
{
test a;
a=test();
return 0;
}
C++的类有默认的赋值运算,也就是说可以不用本人手写operator=的重载也可以直接运行
a=test();
但是,本人试着本人重写了赋值运算符,也就是注释中的部分,结果就报错了。
错误原因是,引用作为参数,不能传入临时对象,也就是说,必须这样使用
test b; a=b;
那么,本人的问题是,怎么样手写赋值运算符,使得其可以支持
a=test();
这种使用方法?
解决方案
20