C++默认拷贝构造函数
转载来源
c++类的中有两个特殊的构造函数,(1)无参构造函数,(2)拷贝构造函数。它们的特殊之处在于:
(1)当类中没有定义任何构造函数时,编译器会默认提供一个无参构造函数且其函数体为空;
(2)当类中没有定义拷贝构造函数时,编译器会默认提供一个拷贝构造函数,进行成员变量之间的拷贝。(这个拷贝操作是浅拷贝)
这里只讲拷贝构造函数。在c语言中,
int a = 5; //初始化
int b;
b = 6; //赋值
上面的初始化及赋值操作是最正常不过的语法,c++语言肩挑兼容c语言语法的责任,所以在类的设计上,也兼容这种操作:
class cls{
pubic:
//...
}
int main(void)
{
cls c1;
cls c2 = c1; //初始化类,还可以 cls c2(c1);
cls c3;
c3 = c1; //赋值类
//...
return 0;
}