我们在为函数形参赋值的时候,有时候形参的类型就是一个类的对象,这个时候我们的实参在给形参传值的时候呢,系统会调用拷贝构造函数给形参进行一一赋值。这个时候就容易出问题了,比如我们的类里面含有指针成员的时候,这个默认的拷贝构造函数是浅拷贝,就是说只是一一复制,比如对于指针成员的话只是复制它的地址,空间却是共享的,这就造成了一个问题,当函数调用结束的时候会自动析构掉函数内的局部成员比如我们的形参。这样一来,我们的实参里面的指针变量所指向的空间就呗析构掉了,但是对与实参来说根本不知情,这样就容易造成BUG。
解决这个问题的方法就是我们自己定义拷贝构造函数进行深拷贝,就是将地址空间内的数据也进行拷贝,这样依赖析构局部形参的时候就不会释放掉实参里面的东西了。