#include <iostream>
using namespace std;
class B{
public:
B(){
cout<<"default constructor"<<endl;
}
~B(){
cout<<"destructed"<<endl;
}
B(int i):data(i){
cout<<"constructed by parameter "<<data<<endl;
}
protected:
int data;
private:
};
B Play(B b){
return b;
}
int main(){
B t1=Play(5);
B t2=Play(t1);
system("pause");
return 0;
}
输出顺序:
constructed by parameter 5
destructed //B(5)形参析构
destructed //t1形参析构
destructed t2
destructed t1
如果main函数内容改为:
int main(){
B t1=Play(5);
B t2=Play(10);
system("pause");
return 0;
}
输出顺序:
constructed by parameter 5
destructed //B(5)形参析构
constructed by parameter 10
destructed //B(10)形参析构
destructed t2
destructed t1