智能指针指的是在指针生存期结束后能自动释放的指针
cpp
class c
{
public:
c()
{
cout<<"create c"<<endl;
}
~c()
{
cout<<"delete c"<<endl;
}
};
void test()
{
auto p1(new c);
unique_ptr<c> p2(new c);
}
int main(int argc,char *argv[])
{
test();
return 0;
}
运行结果
可以看到普通指针p1在生存周期结束前未释放申请的内存(析构未调用),而智能指针unique_ptr在生存期结束时自动delete(调用析构函数)
智能指针不是普通的指针,通过(new)声明