Ex4_7.cpp
上传用户:wuzhousb
上传日期:2022-07-12
资源大小:380k
文件大小:1k
源码类别:

书籍源码

开发平台:

Visual C++

  1. //【例4.7】演示对象创建和撤消的对应关系。
  2. #include<iostream>
  3. using namespace std;
  4. class complex{
  5.   private:                                 
  6.     double real, image;                         
  7.   public:
  8.     complex(){  //缺省的构造函数
  9. real=0.0;
  10. image=0.0;
  11. cout<<"Initializing  0   0"<<endl;
  12. }
  13. complex(double r,double i=0.0){  //带参数的构造函数
  14. real=r;
  15. image=i;
  16. cout<<"Initializing"<<r<<'t'<<i<<endl;
  17. }
  18. complex(complex &com);  //拷贝的构造函数声明
  19. ~complex(){    //析构函数
  20. cout <<"Destructor"<<endl;
  21. }
  22. void assign(complex com){
  23. real=com.real; //先建立临时对象com
  24. image=com.image;
  25. }
  26.     void print(){
  27. cout<<real<<'+'<<image<<'i'<<endl;
  28. }
  29. };
  30. inline complex::complex(complex &com){ //拷贝的构造函数说明
  31. cout<<"Copy"<<com.real<<'t'<<com.image<<endl;
  32. real=com.real;
  33. image=com.image;
  34. }
  35. complex fun(complex);
  36. complex global;//全局对象首先建立
  37. int main(){
  38. cout <<"Entering main"<< endl;
  39. complex com1, com2(5.6, 7.5);
  40. complex com3=com1;
  41. com3.print();
  42. global.print();
  43. com1=fun(com2);
  44. com1.print();
  45. cout<<"Exiting main"<<endl;
  46. return 0;
  47. }
  48. complex fun(complex com){
  49. cout<<"Entering function"<<endl;
  50. global.assign(com);
  51. cout<<"Exiting function"<<endl;
  52. return global;
  53. }