只要有一个操作数是自定义类型就可以重载。都是内置类型则不允许重载,比如你重载了算数+,编译器会乱套的。
给你个例子:
#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<
return 0;
}
应该不能。。
因为运算符重载需要至少一个操作数是自定义类型。。