第六周 阅读程序(3)

来源:互联网 发布:创业 知乎 编辑:程序博客网 时间:2024/06/06 10:57

问题描述:

阅读程序,写出程序的运行结果并理解。

[cpp] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1. #include <iostream>  
  2. using namespace std;  
  3. class B  
  4. {  
  5. public:  
  6.     B()  
  7.     {  
  8.         cout<<"default constructor"<<endl;  
  9.     }  
  10.     ~B()  
  11.     {  
  12.         cout<<"destructed"<<endl;  
  13.     }  
  14.     B(int i):data(i)  
  15.     {  
  16.         cout<<"constructed: " << data <<endl;  
  17.     }  
  18. private:  
  19.     int data;  
  20. };  
  21. B Play(B b)  
  22. {  
  23.     return b ;  
  24. }  
  25. int main()  
  26. {  
  27.     B temp = Play(5);  
  28.     return 0;  
预计运行结果:

constructed: 5

destructed

实际运行结果:


分析:B play(B b)愚以为是调用函数的时候复制了一个b所以执行2次析构函数。

0 0