, 没有释放该对象 , 这样造成了内存泄漏 ;
//堆内存中创建对象 , 在方法结束后 , 不会自动释放 Student 对象
void createInHeap() {
Student *student...= new Student;
}
② 正确示例 : 使用 new 关键字在堆内存中创建了对象 , 必须在作用域结束前, 将该对象使用 delete 方法释放掉 , 否则会造成内存泄漏 ;
//堆内存中创建对象...;
③ unique_ptr : 指向的对象所有权 互斥 , 同一时间 , 一个 对象 只能有一个 unique_ptr 智能指针 指向它 ;
④ auto_ptr ( 已弃用 ) : 该智能指针在 C+...对象的引用计数又变成了 0
// 两个智能指针会被回收 , 回收智能指针时 , 会做判定 , 当 对象的引用计数为 0 时
// 自动调用该对象的析构函数 , 释放该对象
}
int main()
{
//C+...delete 释放 ( delete 会触发虚构函数 ) ;
// 如果忘记手动释放使用 new 创建的对象 , 就会导致内存泄漏
// 因此引入智能指针 , 可以防止忘记手动释放对象导致内存泄漏