https://zh-google-styleguide.readthedocs.io/en/latest/google-cpp-styleguide/magic/
智能指针是一个通过重载 *
和 ->
运算符以表现得如指针一样的类.
智能指针类型被用来自动化所有权的登记工作, 来确保执行销毁义务到位.
std::unique_ptr 是 C++11 新推出的一种智能指针类型, 用来表示动态分配出的对象的独一无二的所有权; 当 std::unique_ptr
离开作用域时, 对象就会被销毁. std::unique_ptr
不能被复制, 但可以把它移动(move)给新所有主.
std::shared_ptr 同样表示动态分配对象的所有权, 但可以被共享, 也可以被复制; 对象的所有权由所有复制者共同拥有, 最后一个复制者被销毁时, 对象也会随着被销毁.