C++输入输出运算符重载(“>>”“<<”)
2016-05-04 08:39
417 查看
//输入输出运算符只能用友元函数重载 #include <iostream> #include <assert.h> #include <string.h> using namespace std; class Complex { double re,im; public: Complex(double r,double i):re(r),im(i) { } Complex() { re = 0; im = 0; } Complex operator!(); Complex operator+(const Complex &obj); //重载输入输出运算符,只能用友元函数 friend ostream &operator<<(ostream &os,const Complex &c); friend istream &operator>>(istream &is,Complex &c); }; Complex Complex::operator +(const Complex &obj) { Complex temp; temp.re = re + obj.re; temp.im = im + obj.im; return temp; } Complex Complex::operator !() { Complex temp; temp.re = -re; temp.im = -im; return temp; } ostream & operator<<(ostream &os,const Complex &c) { os << c.re; if(c.im > 0) os << "+" << c.im << "i" << endl; else os << c.im << "i" << endl; return os; } istream & operator>>(istream &is,Complex &c) { is >> c.re >> c.im; return is; } int main(int argc,char *argv[]) { Complex obj1(1,2),obj2(3,4); Complex obj3 = obj1 + !obj2; cout << obj3; cin >> obj3; cout << obj3; return 0; }
相关文章推荐
- C++实现一个按键精灵
- MOOC北京理工《C语言程序设计(上)》第5周第3题:求最小m值
- 成为C++高手之第一个程序
- C++11 多线程
- 【步兵 c++】 多态&虚函数
- C++11 正则表达式——实例3
- C++11 正则表达式——实例2
- 关于模板编程的一个例子 来自深度探索c++对象模型
- 编译原理词法分析
- C++11 正则表达式——实例1
- C++中的命名空间、using用法、区域运算符(::)详解
- C++11:匿名函数(lambda函数/表达式)及其用法
- 状态模式-c++实现
- 第五次程序设计作业 C++计算器雏形 调用文件输入输出
- Restore IP Addresses
- 用c++写一个简单的计算器程序
- c++primer第二遍阅读感悟(chap3)
- c++写的简单计算器
- 嵌入式开发为什么要学C语言
- C语言的内存对齐机制