智能指针四种: 自,唯,共,弱.
atuo_ptr, unique_ptr, shard_prt, weak_pt.
atuo_ptr: 自动指针, C11中摒弃, C17中删除.
unique_ptr: 独占被引用对象的地址, 不过copy. 可以转移. 有专门的api.
shard_prt: 可以多个指针对象指向同一个内存对象, 对象的引用计数会增加, 引用 为0时销毁对象.
问题: 循环引用时, 计数不会减为0, 造成对象不销毁, 内存泄漏. 可以用weak_prt解决.
weak_ptr: 指向内存对象时, 对象引用 计数不会加1.
类型强转四种: 静,常,动,暴.
static_cast, const_cat, dynamic_cast, reinterpret_cast.
static_cast: 同类型间安全转换, 如int, char, long. float.
const_cat: 对const类型去const化, 用的少, 如实参为const, 形参不为const时要这样转一下.
dynamic_cast: 基类指针或引用 , 转为派生类的, 然后用派生类的指针或者引用调用非虚函数.
reinterpret_cast: 暴力转换, 任意类型转换, 按bit copy, 要非常小心使用. 不过C 语言工作者, 我相信经常这样干.