C++primer plus第六版课后编程练习答案11.7
2015-12-01 17:59
417 查看
头文件 #ifndef COMPLEX0_H_ #define CONPLEX0_H_ #include<iostream> class complex { private: double real; double imaginary; public: complex(){real=imaginary=0;} complex(double r,double i); complex operator+(const complex &c)const;// complex operator-(const complex &c)const; complex operator*(const complex &c)const; complex operator*(const double x)const; complex operator~()const; friend complex operator*(double n,const complex &c);//两个乘法重载,使2*c和c*2都能运行 friend std::ostream &operator<<(std::ostream &os,const complex &c);//<<不是成员函数,不能再后面加const friend std::istream &operator>>(std::istream &is,complex &c); }; #endif
#include<iostream> #include "complex0.h" using namespace std; complex::complex(double r,double i) { real=r; imaginary=i; } complex complex::operator *(const complex &c)const { return complex((real*c.real-imaginary*c.imaginary),(real*c.imaginary+c.real*imaginary)); } complex complex::operator+(const complex &c)const { return complex((real+c.real),(imaginary+c.imaginary)); } complex complex::operator-(const complex &c)const { return complex((real-c.real),(imaginary-c.imaginary)); } complex complex::operator*(const double x)const { return complex((real*x),(imaginary*x)); } complex complex::operator~()const { return complex(real,-imaginary); } complex operator*(double n,const complex &c) { return c*n; } std::ostream &operator<<(std::ostream &os,const complex &c)//<<不是成员函数,不能再后面加const { os<<"("<<c.real<<","<<c.imaginary<<"i)"; return os; } std::istream &operator>>(std::istream &is,complex &c) { cout<<"请输入实部:"; if(is>>c.real) { cout<<"请输入虚部:"; is>>c.imaginary; } return is; }
#include<iostream> #include "complex0.h" using namespace std; int main() { complex a(3.0,4.0); complex c; cout<<"Enter a complex number(q to quit):\n"; while(cin>>c) { cout<<"c is "<<c<<'\n'; cout<<"complex conjugate is "<<~c<<'\n'; cout<<"a is "<<a<<'\n'; cout<<"a+c is "<<a+c<<'\n'; cout<<"a-c is "<<a-c<<'\n'; cout<<"a*c is "<<a*c<<'\n'; cout<<"2*c is "<<2*c<<'\n'; cout<<"Enter a complex numbet(q to quit):\n"; } cout<<"Done!\n"; return 0; }
相关文章推荐
- Leetcode Palindrome Number C++
- c++转换函数和类的自动转换
- C/C++中各种类型int、long、double、char表示范围(最大最小值)
- 设计模式系列(二)观察者模式(Observer Pattern)
- C语言_指针
- C++primer plus第六版课后编程练习答案11.5和11.6
- C++位操作的常见用法小结
- 设计模式系列(一)策略模式(Strategy Pattern)
- C语言基础(五--1)
- C语言--指针2
- VC++中字符串编码的转换
- c++11 多线程 二 锁和互斥量
- 数组中只出现一次的数(1)(C++)
- 用结构体实现一个电话本
- C语言--指针1
- 如何理解c和c++的复杂类型声明
- C++输入输出流格式控制
- (五)C++基本类型表
- C++二维数组作为参数问题
- C++ 数字与字符串互转