1. 程式人生 > >C++學習筆記5_智能指針

C++學習筆記5_智能指針

ret 使用 delete 智能 模板 public del () let

1. 一般的指針
int main(void)
{
int *p=new int;
*p=20;
delete p;
return 0;
}
智能指針能自動回收
#include<memory> 記得要引用頭文件
int main(void)
{
//auto_ptr<int>模板寫法
auto_ptr<int> ptr(new int);
}
auto_ptr<>其實是一個模板類;
使用智能指針,就不用自己delete了,也能自行調用析構函數
2.
class A
{
public :
A(int a)
{
//...
}
func()
{
//...
}
}
int main(void)
{
auto_ptr<A> ptr(new A(10));
ptr->func();
(*ptr).func();
//auto_ptr肯定重載了->和*操作符,並且在析構時,delelte了A的指針
}

C++學習筆記5_智能指針