先看看系统自带的递增运算符++
// 递增运算符重载 ++; a++; ++a
int a = 10;
cout << ++a << endl; // 11 先加,后输出。
cout << a << endl; // 11 已加。
int b = 10;
cout << b++ << endl; // 10 先输出,然后再加。
cout << b << endl; // 11 已加。
我们定义我们自己的整型。满足前置递增,后置递增。
class MyInt
{
public:
MyInt()
{
m_Num = 0;
}
private:
int m_Num;
};
调用一下试试:

左移运算符报错,说没有匹配的类型。所以我们需要重载,包括使用++也会报错。

所以自己的类型,必须重新定义个运算符重载。
为了使得我们的cout在左侧,所以只能定义一个全局的重载运算符函数。
ostream& operator<<(ostream& cout, MyInt myint)
{
cout << myint.m_Num;
return cout;
}
同时在类内将全局函数声明为友元

最低0.47元/天 解锁文章
2834





