【C++】operator 重载符号

说说

最近闲时研究下C++发现有个重载符号operator,挺有意思就简单了解下。当然发现operator可以对<<,>>,+,...等等重载的时候,第一时间想到的是cout对字符串的输出。

std::cout << "Hello world" << std::endl;

估计里面用了这个重载符号的技术。一开始百度别人用operator的代码例子,真是看得一头雾水。瑞士军刀代码看得头痛,还是我的C简洁清晰(笑)。

如何使用

上个代码:

#include 

class A {
public:
void operator <<(char* a);
};

void A::operator <<(char* a)
{
    std::cout << a << std::endl;
}

先声明个类A,里面没什么function,只有个operator对<<的重载。如何理解,其实也是不难,大概就是:

[类型]    operator    [要重载的操作符号]    [function]
void      operator            <<          (char* a);

平常定义function:
void abc(char* a){ 
    //to do
};

对比下来:
abc 换成 <<
重载就是多了个 operator

这样看下来是不是很清晰,之后写个完整的test:

#include 

class A{
public:
void operator <<(char* a);
};

void A::operator <<(char* a)
{
    std::cout << a << std::endl;
}

int main(){

    A a ;
    a<<"Hello world";

}

运行结果:



编辑于 【2018.3.13】

你可能感兴趣的:(【C++】operator 重载符号)