设为首页 加入收藏

TOP

4.2.5 编程题(3)
2013-10-07 16:21:33 来源: 作者: 【 】 浏览:75
Tags:4.2.5 编程

4.2.5  编程(www.cppentry.com)题(3)

【例4.17】编写一个程序,声明复数的类Complex,使用友元函数add实现复数加法。

解:在Complex类中,用real、image分别表示复数的实部和虚部,设计相关成员函数,另设计add友元函数,用以实现两个复数对象相加并返回相加后的复数对象。程序如下:

  1. #include < iostream > 
  2. using namespace std;  
  3. class Complex  
  4. {  
  5. private:  
  6.     double real, image;  
  7. public:  
  8.     Complex() {}                                //默认构造函数  
  9.     Complex(double a,double b)              //带参构造函数  
  10.     {   real=a;  
  11.         image=b;  
  12.     }  
  13.     void setdata(double a, double b)            //设置数据成员值  
  14.     {   real=a;  
  15.         image=b;  
  16.     }  
  17.     double getReal()                            //求实部  
  18.     {   return real;  }  
  19.     double getImage()                           //求虚部  
  20.     {   return image;  }  
  21.     void print()                                //输出一个复数  
  22.     {   if (image>0)  
  23.             cout << "复数:" << real << "+" << image << "i" << endl;  
  24.         if (image<0)  
  25.             cout << "复数:" << real << "-" << -image << "i" << endl;  
  26.     }  
  27.     friend Complex add(Complex ,Complex);   //声明友元函数  
  28. };  
  29. Complex add(Complex c1, Complex c2)         //定义友元函数  
  30. {   Complex c3;  
  31.     c3.real=c1.real+c2.real;                    //访问Complex类中的私有成员  
  32.     c3.image=c1.image+c2.image;  
  33.     return c3;  
  34. }  
  35. void main()  
  36. {   Complex c1(2,5),c2,c3;  
  37.     c2.setdata(-6,-2);  
  38.     c3=add(c1,c2);  
  39.     cout << "复数1:"; c1.print();  
  40.     cout << "复数2:"; c2.print();  
  41.     cout << "相加后:"; c3.print();  
  42. }  

本程序的执行结果如下:

  1. 复数1:2+5i  
  2. 复数2:-6-2i  
  3. 相加后:-4+3i  

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇4.2.5 编程题(2) 下一篇1.5 并行的困境

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·用 Python 进行数据 (2025-12-25 15:49:09)
·如何学习Python数据 (2025-12-25 15:49:07)
·利用Python进行数据 (2025-12-25 15:49:04)
·Java 学习线路图是怎 (2025-12-25 15:19:15)
·关于 Java 学习,有 (2025-12-25 15:19:12)