【发布时间】:2019-05-13 07:03:31
【问题描述】:
我正在练习运算符重载,我已经进行了数百次运算符重载,但这次如果我将此代码与旧代码语法(符合良好)进行比较,我发现语法没有变化,请指导我。谢谢
EROR : [Error] 'two operator=(one, two)' 必须是非静态成员函数
#include<iostream>
using namespace std;
class two;
class one{
int sno;
public:
one()
{
sno=312;
}
friend two operator =(one,two);
};
//b b1; b1=a.seatno;
class two{
int seatno;
public:
two(){seatno=0;
}
friend two operator = (one,two);
};
two operator = (one a1,two b1)
{
b1.seatno=a1.sno;
return b1;
}
int main()
{
one a1;
two b1;
b1=a1;
}
[错误] 'two operator=(one, two)' 必须是非静态成员函数
【问题讨论】:
-
错误是什么?有什么问题?
-
operator=cannot be non-member -
修改赋值的右手参数而不是左手是我很长时间以来看到的最令人困惑的事情。
-
你错误地定义了你的
operator=,看我的回答 -
对不起我的错误我忘了写我面临的问题
标签: c++ operator-overloading friend-function