析构函数尽管调用顺序相反但是思路一致
所以不要在析构/构造过程中调用虚函数
补偿方法是将需要让派生类执行的函数以非虚函数的形式写好, 然后将其所需的变量通过构造函数在构造初值列中进行传递...., 但是千万不能用拷贝函数调用拷贝函数, 这相当于试图构造一个已经存在的对象, 很容易导致对象被破坏...., 而智能指针是语言范围内的一种结构而已
智能指针在内存上与原始指针几乎相同(顶多多一个引用计数器), 速度上也相差无几
三种标准库智能指针, 都在memory里:
unique_ptr: 独占指针,..., 同时在日常中通过重载调用运算来模拟指针方便开发
隐式类型转换可以写, 比较自然, 但是有时有危险
更常见的情景是写一个显式的get函数来获取原始指针
牢记RAII类不是为了封装数据存在的, 而是为了给原始指针加上资源回收的功能...写出上面那种在一个语句(尤其是函数参数列)中执行new, 构造智能指针, 和其它操作的代码很危险.