重载操作符就是为了实现类的多态性,让运算符与类结合,产生新的含义。
使用类的成员函数或友元函数(类外的普通函数)实现。
//重载+,=,<<,>>
#include<iostream>
using namespace std;
//重载操作符一定要有一个对象参与
class CNum
{
public:
int m_a;
public:
CNum()
{
m_a = 0;
}
int operator=(int num) //重载 =
{
m_a = num;
return m_a;
}
int operator+(int num) //重载 +
{
return m_a + num;
}
int operator+(CNum& num) //使用引用是为了修改参数里面的值,下面的例子同理
{
return this->m_a + num.m_a;
}
};
// 类外重载的需要两个参数,第一个是符号左边的,第二个是符号右边的
int operator+(int a, CNum& num)
{
return a + num.m_a;
}
//重载输出
ostream& operator<<(ostream& os,CNum& num) //同样的这里返回值使用了引用,
//因为需要使用的就是os本身,而不是拷贝构造的os
{
os << num.m_a;
return os;
}
//重载输入
istream& operator<<(istream& is,CNum& num)
{
is >> num.m_a;
retu