文章目录
拷贝构造函数的定义
拷贝构造函数定义如下:
- 拷贝构造函数是构造函数的一个重载形式。
- 拷贝构造函数的参数只有一个且必须使用引用传参,使用传值方式会引发无穷递归调用。
使用拷贝构造时势必要牵扯到深浅拷贝问题。那么什么是深浅拷贝呢?
浅拷贝
也称位拷贝,编只是将对象中的值拷贝过来(默认生成的拷贝构造函数即是浅拷贝)
class String
{
public:
String(const char* str = "")
{
if (str == nullptr)
{
assert(false);
return;
}
_str = new char[strlen(str) + 1];
strcpy(_str, str);
}
~String()
{
if (_str)
{
delete _str;
_str = nullptr;
}
}
private:
char* _str;
};
int main()
{
String s1("hello world!");
String s2(s1);
return 0;
}
- 这里我们没有显示定义拷贝构造函数,所以使用的是系统默认生成的默认构造函数ÿ