1. auto_ptr 2. scoped_ptr 确保动态分配的对象能够正确地删除。与auto_ptr最大的区别在于不能转让所有权,即不可以被复制或者是赋值。使用scoped_ptr和使用裸指针的区别在于不需要记得delete指针所指向的对象了。当scoped_ptr被销毁时,它拥有的指针对象调用delete。 3. shared_ptr 4. weak_ptr