在C++98中,智能指针通过模板类型"auto_ptr"来实现。这在一定程度上避免了忘记释放内存造成的问题。不过auto_ptr有一些缺陷(拷贝时返回一个左值,不能调用delete[]等),因此,在C++11中,auto_ptr被废弃了。取而代之的是shared_ptr、weak_ptr、unique_ptr等智能指针。
这些指针默认使用delete, delete[]来释放内存,所以在分配内存的时候,要对应的使用new来分配,而不是C风格的malloc, 如:shared_ptr<int> sp(new int(20))
待续