一步一步学习C++(类)之拷贝构造函数

来源:互联网 发布:手机最好用防蹭网软件 编辑:程序博客网 时间:2024/05/30 04:29

拷贝构造函数,又称复制构造函数,是一种特殊的构造函数,它由编译器调用来完成一些基于同一类的其他对象的构建及初始化。在C++中,下面三种对象需要调用拷贝构造函数(有时也称“复制构造函数”)。

1) 一个对象作为函数参数,以值传递的方式传入函数体
<span style="color:#000000;">Tstudent::Tstudent(const Tstudent &p)//拷贝复制函数{strcpy(name,p.name);score[0]=p.score[0]+100;score[1]=p.score[1]+100;aver = p.aver+100;printf("拷贝复制函数\n");}//全局函数,传入的是对象 void test(Tstudent &p)//值传递,需要调用拷贝复制函数{Tstudent B = p;B.Print();}</span>


调用test()时,会产生以下几个重要步骤:
(1)p对象传入形参时,会先会产生一个临时变量,就叫 C 吧。
(2)然后调用拷贝构造函数把test的值给C。 整个这两个步骤有点像:Tstudent C(p);
(3)等test()执行完后, 就析构掉 C 对象。


2) 一个对象作为函数返回值,以值传递的方式从函数返回
Tstudent test1(){Tstudent p("李四",90,90);return p;}
当test1()函数执行到return时,会产生以下几个重要步骤:
(1)先会产生一个临时变量,就叫p吧。
(2)然后调用拷贝构造函数把temp的值给p。整个这两个步骤有点像:CExample p(temp);
(3)在函数执行到最后先析构temp局部变量。
(4)等test()执行完后再析构掉p对象。

3) 一个对象用于给另外一个对象进行初始化(常称为赋值初始化)
Tstudent p("李四",90,90);Tstudent B = p;




0 0
原创粉丝点击