很多时候的答案是“不”,但有时候却是“是”
关键在于复制该类的对象是否就相当于复制其数据成员和基类对象。如果不想当,就要用拷贝构造函数。
如果你的类在构造函数里分配了资源,则可能需要一个显式的复制构造函数来管理资源。
有析构函数的类通常用析构函数来释放构造函数分配的资源,这通常也说明需要一个拷贝构造函数。
如果没有显示复制的话,新申请的内存就会隐式的定义。
当复制完成之后,两个对象就会指向同一个内存;当两个对象被销毁时,这个内存会释放2次。
很多时候的答案是“不”,但有时候却是“是”
关键在于复制该类的对象是否就相当于复制其数据成员和基类对象。如果不想当,就要用拷贝构造函数。
如果你的类在构造函数里分配了资源,则可能需要一个显式的复制构造函数来管理资源。
有析构函数的类通常用析构函数来释放构造函数分配的资源,这通常也说明需要一个拷贝构造函数。
如果没有显示复制的话,新申请的内存就会隐式的定义。
当复制完成之后,两个对象就会指向同一个内存;当两个对象被销毁时,这个内存会释放2次。