拷贝构造函数是一种特殊的构造函数:
拷贝构造函数是由编译器调用,用来完成一系列基于同一类的其他对象的构件及初始化。
拷贝构造函数的一般形式:
类名(类名 &变量名)
{
函数体;
}
拷贝构造函数的名称必须和类名一致,形参必须是唯一的、不可改变的本类型的一个引用类型的变量。
拷贝构造函数调用的三种情况:
1.对象以值传递的方式传入函数体:
class Test
{
.......;
};
CopyFun(Test &test)
{.......}
2.函数的返回值类型是同一个类的对象:
class Test
{
......;
};
CopyFun()
{
Test test;
return test;
}
int main()
{
Test tempTest;
tempTest=CopyFun();
}
3.用一个类对象去初始化另一个对象:
class Test
{
.......;
};
int main()
{
Test test1;
Test test2(test1);
.......;
}
当一个类没有自定义的拷贝构造函数时,系统会提供一个默认的拷贝构造函数完成复制操作。