0%

智能指针的实现

Website

程序运行时需要分配内存释放内存, 在C++中我们使用关键词 newdelete .

new 是一个运算符, 负责申请堆内存, 分为两个步骤 : 1.malloc 2.operator new, 即先申请内存, 再构造对象. 最后返回该堆内存的指针.

delete也是一个运算符, 负责释放堆内存, 分为两个步骤 :1.operator delete 2.free, 即先调用对象的析构函数, 再释放内存.

堆内存需要程序员手动释放, 因此如果程序抛出异常, 来不及释放内存或者忘记释放内存都会导致内存泄漏.

阅读全文 »