#include<bits/stdc++.h>usingnamespace std;classTest{int num;int* p=nullptr;public:Test(){
cout<<"无参构造"<<endl;}Test(int n){
cout<<"有参构造"<<endl;
num=n;if(num>0) p=(int*)malloc(sizeof(int)*num);}Test(const Test &other){
cout<<"拷贝构造"<<endl;this->num=other.num;if(other.p)this->p=other.p;}~Test(){if(p){free(p);
p=nullptr;}
cout<<"析构函数"<<endl;}};intmain(){
Test t(3);
Test t1(t);return0;}
#include<bits/stdc++.h>usingnamespace std;classTest{private:int num;int* p=nullptr;public:Test(){
cout<<"无参构造"<<endl;}Test(int n){
cout<<"有参构造"<<endl;
num=n;if(num>0) p=(int*)malloc(sizeof(int)*num);}Test(const Test &other){
cout<<"拷贝构造"<<endl;this->num=other.num;if(num>0)this->p=(int*)malloc(sizeof(int)*num);}~Test(){if(p){free(p);
p=nullptr;}
cout<<"析构函数"<<endl;}};
Test fun(){
Test t;return t;}intmain(){
Test t(3);
Test t1(t);return0;}