定义一个复数类Complex,使得以下代码能够工作。

Complex c1 (3,5);	//用复数 3+5i 初始化 c1 
Complex c2=4.5;		//用实数 4.5 初始化 c2 
c1.add (c2);		//将 c1 与 c2 相加,结果保存在 c1 中 
c1.show ();		//将 c1 输出 (这时结果应该诗 7.5+5i) 
 1 #include<iostream>
 2 #include<cmath>
 3 using namespace std;
 4 class Complex {
 5     public :
 6         Complex () {
 7             real=0;
 8             imaginary=0;
 9         }
10         Complex (double real0=0,double imaginary0=0) {
11             real=real0;
12             imaginary=imaginary0;
13         }
14         void add (Complex a);
15         void show ();
16         double mod ();
17     private :
18         double real;
19         double imaginary;
20 };
21 
22 void Complex::add(Complex a) {
23     real += a.real;
24     imaginary += a.imaginary;
25 } 
26 
27 void Complex::show() {
28     if (imaginary!=0)
29     cout<<real<<"+"<<imaginary<<"i"<<endl;
30     else cout <<real<<endl;
31 }
32 
33 double Complex::mod() {
34     return sqrt (real*real+imaginary*imaginary);
35 }
36 
37 int main () {
38     Complex c1 (3,5);
39     Complex c2 = 4.5;
40     c2.show ();
41     c1.add (c2);
42     c1.show ();
43     cout << c1.mod() <<endl;
44     return 0;
45 } 
Main

  现在是基本弄明白了构造函数的用法,原本对构造函数、复制构造函数之类的语句是不太会用的。

  代码果然要自己去尝试才能比较容易发现问题,找出区别。我在这次作业里试了很多构造函数的不同格式,基本上只是格式换了一下语句之类的没有什么修改,之后有空的话会去调试一下老师之前发的一些代码找一下感觉,也顺便熟悉一下上课没仔细听的东西...

posted on 2019-04-02 09:02  Nibelungenlied  阅读(151)  评论(1编辑  收藏  举报