C++:重载操作符
还记得我们之前提到的函数重载吗,它可以使一个函数名有多种功能,操作符的重载也是这个道理,它会使同一个运算符具有多种功能。
我们在平常的使用中已经接触到了运算符重载,如“<<”,它既是位移运算符,也可以配合cout进行输出。在C++中我们也可以自己重载。
#include<iostream>
using namespace std;
class Num
{
private:
	int n;
public:
	Num(){}
	Num(int a)
	{
		n = a;
	}
public:
	int operator=(int a);
	int operator+(int a)
	{
		return n + a;
	}
	friend int operator+(int a, Num& num);
};
int Num:: operator=(int a)    //类内重载
{
	n = a;
	return a;
}
int operator+(int a, Num& num)//类外重载
{
	return a + num.n;
}
int main()
{
	Num num = 100;
	num = 20;
	int a = num + 10;
	int b = 10 + num;
	cout << a << " " << b << endl;
	return 0;
}
注意:
1.sizeof()   ::   .   ?: 这四个不能重载
 2.重载不会改变优先级和结合性
 3.重载操作符不允许使用默认参数
 4.->  []  =  ()必须在类内重载
  
