C/C++教程

[C++]1.14 运算符重载

本文主要是介绍[C++]1.14 运算符重载,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

运算符的连续使用(链式编程)需要注意重载函数的返回值设置。

加号运算符重载

两种实现方式:

1.成员函数重载

Person operator+(Person &p){ }

2.全局函数重载

Person operator(Person &p1,Person&p2)

注意:1.两种方式都可以利用本质运行,也可以使用简化后的 p1+p2 。

2.内置数据类型运算符不可改变。

左移运算符重载

左移运算符<<的重载主要是为了输出自定义数据类型的方便。

根据使用习惯,左移运算符重载通常以全局函数定义而不以成员函数定义。原因如下:

class Person {

public:                                                         成员函数的弊端:

void operator<<(ostream &cout){               1.这种形式的 p.operator<<(cout)简化后的形式是

cout<<A<<endl<<B<<endl;                           p<<cout 的形式,与期望相反。

}                                                                  2.这种形式不支持链式传递,即

private:                                                           cout<<p<<p1<<endl<<"We are the world";

    int A;                                                           因为在ostream &cout传递过程中,成员函数

    int B;                                                           重载依赖p1而不能单独使用。

}

由上可知,左移运算符重载以全局函数进行。(通过友元来配合私有权限)

本质形式实例: ostream &operator (ostream out,Person  &p){    return out}

 

这篇关于[C++]1.14 运算符重载的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!