#includeclassSTU{public:STU(){printf("STU\n");}STU(int id){printf("STU(int id)\n");}~STU(){printf("STU Bye!!!\n");}};intmain(int argc,charconst*argv[]){
STU a;//调用无参构造函数
STU b(5);//显调用
STU c =10;//隐式调用
STU d = c;//调用拷贝构造函数
STU *p =newSTU(1000);//堆中申请return0;}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
深浅拷贝问题(快捷方式与复制)
浅拷贝
#includeclassSTU{public:STU(){printf("STU\n");
p =newchar[10];}~STU(){printf("STU Bye!!!\n");delete[] p;}private:char*p;};intmain(int argc,charconst*argv[]){
STU a;//调用无参构造函数
STU b = a;return0;}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
深拷贝
#include#includeclassSTU{public:STU(){printf("STU\n");
p =newchar[10];strcpy(p,"hello!!!");}STU(const STU &a){//拷贝构造函数printf("const STU &a\n");
p =newchar[10];strcpy(p, a.p);//拷贝}~STU(){printf("STU Bye!!!\n");delete[] p;}private:char*p;};intmain(int argc,charconst*argv[]){
STU a;//调用无参构造函数
STU b = a;return0;}