首先拷贝构造函数是一个“构造函数”,函数名与类名相同,没有返回值。形参是本类对象的引用。函数作用是创建一个新对象,本类对象的引用是用来初始化新创建的对象。
函数定义:
A(A & a)
{
*this = a;
}
调用拷贝构造函数主要有以下场景:
赋值运算符是用来给对象赋值的,前提是,已经创建好对象了。
函数定义:
//返回值必须为引用,如果写成对象,符合上面调用拷贝构造函数场景2,对象作为函数返回值的情况,就会调用拷//贝构造函数,而拷贝构造函数中有“ = ”,再次调用赋值运算符,最终造成循环调用,程序崩溃。
A & operator = (A & a){
return *this;
}
调用赋值运算符场景:
对象赋值
A a(1);
A b;
a = b;
对象拷贝
A a(1);
A b = a;
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。