c++非成员函数和非友元函数能重载运算符吗?

2024-12-04 15:00:08
推荐回答(2个)
回答1:

只要有一个操作数是自定义类型就可以重载。都是内置类型则不允许重载,比如你重载了算数+,编译器会乱套的。
给你个例子:

#include
class A
{
public:
A():a(0){}
public:
void display(){std::cout<private:
int a;
};
int operator+(A a,int b)
{
return 100;
}
int main(int argc,char * argv[])
{
A obj;
int c=obj+4;
std::cout<::system("pause");
return 0;
}

回答2:

应该不能。。
因为运算符重载需要至少一个操作数是自定义类型。。