C/C++,运算符重载
来源:互联网 发布:北京亚信数据有限公司 编辑:程序博客网 时间:2024/04/29 01:55
编辑运算符重载源文件overload.cpp
#include <iostream>using namespace std;class Complex{ public: Complex(){real = 0; imag = 0;} Complex(double r, double i){real = r; imag = i;} Complex operator +(Complex &c2); void display(); private: double real; double imag;};Complex Complex::operator +(Complex &c2){ return Complex(real + c2.real, imag + c2.imag);}void Complex::display(){ cout << "(" << real << "," << imag << "i)" << endl;}int main(){ Complex c1(3, 4), c2(-5, 10), c3; c3 = c1 + c2; cout << "c1 = "; c1.display(); cout << "c2 = "; c2.display(); cout << "c3 = "; c3.display(); return 0;}
编译运行结果为:
修改上述源文件,将一个常数和一个复数相加:
#include <iostream>using namespace std;class Complex{ public: Complex(){real = 0; imag = 0;} Complex(double r, double i){real = r; imag = i;} Complex operator +(Complex &c2); void display(); private: double real; double imag;};Complex Complex::operator +(Complex &c2){ return Complex(real + c2.real, imag + c2.imag);}void Complex::display(){ cout << "(" << real << "," << imag << "i)" << endl;}int main(){ Complex c1(3, 4), c2(-5, 10), c3; c3 = 3 + c2; cout << "c1 = "; c1.display(); cout << "c2 = "; c2.display(); cout << "c3 = "; c3.display(); return 0;}
编辑结果:
根据上述编译时提示的错误信息可知:重载后运算符两边的数据类型应该一致。
将 c3 = 3 + c2;
改为c3 = Complex(3, 0) + c2;
重新编译运行得到以下结果:
0 0
- C++-运算符重载
- [C++]重载运算符
- C#:运算符重载
- c++-++运算符重载
- C++:重载运算符
- 运算符重载(C++)
- [c++]运算符重载
- 【C++】运算符重载
- C++--------------------------------------------运算符重载
- C#:运算符重载
- C++:运算符重载
- C++:运算符重载
- C#:运算符重载
- [C++]运算符重载
- 【c++】运算符重载
- C++:运算符重载
- C#:运算符重载
- C++:运算符重载
- ft5x0x驱动分析
- Python 教程 安桌APP 开源并免费下载
- [转载]11条Java异常处理的最佳实践
- 深入HBase架构解析
- SQLyog 使用介绍
- C/C++,运算符重载
- python问题
- 《Windows程序设计》读书笔五 绘图基础
- struts2的action从request获取参数值的两种方式
- Hadoop MapReduce Job 提交的多种方案
- git使用小结
- 位运算——原码反码补码
- sqlite3使用简介
- mybatis——缓存