c++非成员函数和非友元函数能重载运算符吗?
展开全部
只要有一个操作数是自定义类型就可以重载。都是内置类型则不允许重载,比如你重载了算数+,编译器会乱套的。
给你个例子:
#include <iostream>
class A
{
public:
A():a(0){}
public:
void display(){std::cout<<a;}
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<<c;
::system("pause");
return 0;
}
给你个例子:
#include <iostream>
class A
{
public:
A():a(0){}
public:
void display(){std::cout<<a;}
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<<c;
::system("pause");
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询