谈到智能指针之前,必须要知道堆栈的相关思想,堆栈在程序开发过程中经常使用到的。比如应用程序的函数当中通过new一个对象,这个对象的实际存储地方是在堆上,而它的指针是保存在栈,在函数执行完毕之后,该对象的指针会被自动从栈中弹出,而其指向的对象会在不会被自动释放,需要通过delete函数来释放该指针所指向的堆栈内存。在开发过程中往往因为忘记delete而造成内存泄露的情况。由此就有智能指针的出现。
智能指针主要思想是:在栈中new一个智能指针对象,而这个智能指针对象指向的实际内容是放在堆上的,在函数执行完成之后,该智能指针对象会被从栈中弹出,此时会调用智能指针的析构函数,在执行该析构函数时,会调用delete函数来释放其指向堆栈上的内存。
时间: 2024-10-21 22:23:20