c++ 智能指针基础详解
大多数时候,当你初始化一个原始指针或者资源句柄使其指向实际的资源时,立即将其传给智能指针。原始指针和智能指针的声明比较如下:如上所示,智能指针是一个在栈上声明的类模板,并由指向分配在堆上的对象的原始指针初始化。这意味着智能指针需要负责原始指针指向的内存释放。智能指针的析构函数包含了 delete 的调用,并且由于智能指针是在栈上声明的,其析构函数会在智能指针对象离开作用域时被调用,即使在栈中发生了异常。C++ 智能指针的理念类似于在 C# 语言中创建对象的过程:创建对象后让系统负责在正确的时间将其删除。不同之处在于,没有独立的垃圾回收器运行于后台;内存是按照标准 C++ 规范对内存进行管理的,使运行时环境更加快速和高效。
下载地址
用户评论