对于自定类型, 则应该在构造函数完善地初始化
对于类的成员, 尽可能不要在构造函数内再初始化自己的元素, 因为在进入构造函数之前自定类型就会被调用默认初始化了, 构造函数内进行的实际上是拷贝构造, 但又要注意内置类型并不会调用默认初始化...这个方法顺便解决了证同问题
证同+备份: 如果对效率要求很高的话可以在备份指针的方法最前面再引入证同测试, 但是要衡量引入额外的if语句是否值得
复制构造并交换: 用赋值构造的方法构造一个当前类型的副本...如果拷贝构造是以值形式传入参数的话, 还可以直接将当前对象数据与传值进入的对象进行交换
12 复制对象时勿忘其每一个成分
当你选择实现自己的拷贝构造函数时, 一定要手动复制所有的局部变量, 同时调用所有基类合适的拷贝函数..., 参考unique_ptr
对于需要保留资源在多个对象手上的情况, 参考shared_ptr设置底层的引用计数器, 额外写一个删除器(deleter)在引用计数为0时调用
复制资源管理对象的时候要确保是深拷贝的...一旦这里调用函数的时候跳出异常, 那么new的返回值无法交给构造函数, 就无法delete从而产生很奇怪的内存泄露
由于编译器对跨语句调用顺序没有排列的自由, 因此一定要记得在独立语句中将new置入智能指针