设计、定义并实现Complex类
#include <iostream> #include <cmath> using namespace std; class Complex{ public: Complex(double real0,double imaginary0); Complex(double real0); Complex(Complex &a); void add(Complex b); void show(); double mod(); private: double real; double imaginary; }; Complex::Complex(double real0,double imaginary0):real(real0),imaginary(imaginary0){ } Complex::Complex(double real0):real(real0){ } Complex::Complex(Complex &a):real(a.real),imaginary(a.imaginary){ } void Complex::add(Complex b){ real=real+b.real; imaginary=imaginary+b.imaginary; } void Complex::show(){ cout<<real<<"+"<<imaginary<<"i"<<endl; } double Complex::mod(){ double m; m=sqrt(real*real+imaginary*imaginary); return m; } int main() { Complex c1(3,5); Complex c2(4.5); Complex c3(c1); c1.add(c2); c1.show(); cout<<c1.mod()<<endl; return 0; }
#include <iostream> #include <cmath> using namespace std; class Complex{ public: Complex(const double real0=0,const double imaginary0=0); Complex(const Complex &a); void add(Complex b); void show(); double mod(); private: double real; double imaginary; }; Complex::Complex(const double real0,const double imaginary0):real(real0),imaginary(imaginary0){ } Complex::Complex(const Complex &a):real(a.real),imaginary(a.imaginary){ } void Complex::add(Complex b){ real=real+b.real; imaginary=imaginary+b.imaginary; } void Complex::show(){ cout<<real<<"+"<<imaginary<<"i"<<endl; } double Complex::mod(){ double m; m=sqrt(real*real+imaginary*imaginary); return m; } int main() { Complex c1(3,5); Complex c2=4.5; Complex c3(c1); c1.add(c2); c1.show(); cout<<c1.mod()<<endl; return 0; }
小结
- 程序中原题“Complex c2=4.5”在程序中报错,光标定位于“=”,但是把等号改成括号就可以执行程序了。不知原因,请大佬指点。
- 自己还是对知识不熟悉,一开始无从下手,花太多时间思考,在编程过程中屡次出现错误,譬如基本程序的实现,误使用中文状态下的符号,单词拼错等。需要花时间来修改及完善。光说不练假把式,还是要多实践,多练习。
- 根据老师讲的内容重新修改了,但仍对const的用法及意义不了解。
评论
https://www.cnblogs.com/lovecpp/p/10629186.html
https://www.cnblogs.com/jiyuanxiangzhouziying/p/10630503.html#4227461
https://www.cnblogs.com/linjiahao1035/p/10638234.html