[原创]类成员操作符重载

在CSDN上看到有人问关于C++类成员操作符重载的问题,于是发现自己似乎也没关心过东西,于是研究了一些,写下了这篇学习笔记。
我们知道在C++中,+、-、+=,<<等等都是一些重要的操作符。有时候我们想让我们自己的类中的操作符有一些特殊的功能,该怎么办呢!
我们都知道函数重载,其实操作符重载也是基于这一机制的,他让我们能够给这些操作符赋予与原来不同的功能,而使用起来和我们原始的操作符没有什么区别。操作符重载分为类成员重载操作符和非类成员操作符重载。类成员重载操作符在类内部定义,而非类成员操作符重载在类外定义。
OK,啰嗦了这么多,来点实用的。这里我就写了一个我自己的cout。

代码如下:

 

#include <stdio.h>
 
class MyIo      //这个是我自定义的类
{
public:
        const MyIo& operator<<(int dwInt) const ;       //这两行就是我们所关心的
        const MyIo& operator<<(char* str) const ;       //操作符重载
};
 
const MyIo& MyIo::operator<<(int dwInt) const           //重载的实现
{
        printf("Num : %d",dwInt);
        return *this;
}
 
const MyIo& MyIo::operator<<(char* str) const
{
        printf("String : %s",str);
        return *this;
}
 
void main()
{
        MyIo myout;             //类声明,然后就像一般的操作符调用
        myout<<123;
        myout<<"NightXie";
}

这段代码写的很简单,但是重载的功能确实很强大也很有趣。和我一样平时没太注意但是很兴趣的朋友不妨一试。