标签:1.14 函数 左移 C++ 运算符 Person operator 重载
运算符的连续使用(链式编程)需要注意重载函数的返回值设置。
加号运算符重载
两种实现方式:
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}
标签:1.14,函数,左移,C++,运算符,Person,operator,重载 来源: https://blog.csdn.net/m0_59298585/article/details/122501271
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。