C++构造函数、析构函数、复制(拷贝)构造函数的注意点
-
默认提供的问题
C++默认提供:默认构造函数、析构函数、复制构造函数
如果用户定义有参构造函数,C++不再提供默认构造函数,但会提供复制构造函数
如果用户定义复制构造函数,C++不再提供其他构造函数
-
构造函数
构造函数没有返回值,不写void -
拷贝构造函数调用时机
1.初始化对象时
2.值传递的方式给函数传参时
3.以值方式返回局部对象 -
复制构造函数
复制构造函数一般有const
即:cperson::cperson(const cperson & copyperson)
这样可以防止传入的参数被更改,也避免了传参时内存占用的问题 -
析构函数
1.一个类中只可能定义一个析构函数
2.析构函数不能重载
3.析构函数不能使用return返回值,不能加上void关键字