前言

在带指针的类中需要有三大函数,拷贝构造、拷贝复制、析构
不是说不带指针的类没有,是不带指针的类用编译自带的即可,编译自带的拷贝只是按bit一个一个忠诚的复制,这适用于不带指针的类。
对于带指针的类,这样的拷贝只是让不同的对象指向同一份空间,没有达到想要的拷贝效果。
图片说明

拷贝构造

拷贝构造函数,又称复制构造函数,是一种特殊的构造函数,它由编译器调用来完成一些基于同一类的其他对象的构建及初始化。其形参必须是引用,但并不限制为const,一般普遍的会加上const限制。此函数经常用在函数调用时用户定义类型的值传递及返回。拷贝构造函数要调用基类的拷贝构造函数和成员函数。如果可以的话,它将用常量方式调用,另外,也可以用非常量方式调用。

图片说明

拷贝赋值

自我赋值检测可以避免赋值出错
图片说明

析构

析构函数(destructor) 与构造函数相反,当对象结束其生命周期,如对象所在的函数已调用完毕时,系统自动执行析构函数。析构函数往往用来做“清理善后” 的工作(例如在建立对象时用new开辟了一片内存空间,delete会自动调用析构函数后释放内存)。

以string类说明
图片说明