//智能指针
//用来托管自定义类型的对象,让对象进行自动的释放
//自定义一个指针管理类 - 智能指针
class smartPointer
{
public:
smartPointer(Person * person)
{
this->person = person;
}
~smartPointer()
{
cout << "智能指针析构了" << endl;
if (this->person !=NULL)
{
delete this->person;
this->person = NULL;
}
}
private:
Person * person;
};
void test01()
{
//Person p1(10); //自动析构
//原始方法:自己维护堆内存,自己释放
//Person * p1 = new Person(10);
//delete p1;
//智能指针方法:自动释放
smartPointer sp(new Person(10)); //sp开辟到了栈上,自动释放
}
reference: