问题描述:
阅读程序,写出程序的运行结果并理解。
- #include <iostream>
- using namespace std;
- class B
- {
- public:
- B()
- {
- cout<<"default constructor"<<endl;
- }
- ~B()
- {
- cout<<"destructed"<<endl;
- }
- B(int i):data(i)
- {
- cout<<"constructed: " << data <<endl;
- }
- private:
- int data;
- };
- B Play(B b)
- {
- return b ;
- }
- int main()
- {
- B temp = Play(5);
- return 0;
- }
constructed: 5
destructed
实际运行结果:
分析:B play(B b)愚以为是调用函数的时候复制了一个b所以执行2次析构函数。