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

拷贝构造函数,又称复制构造函数,是一种特殊的构造函数,它由编译器调用来完成一些基于同一类的其他对象的构建及初始化。在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;




你可能感兴趣的:(C++,类)