delete语句怎么写(数据库sql语句大全实例)

   日期:2022-02-23     文章发布:文章发布    网络转载:生活号    
核心提示:C++在回收用new分配的单个对象的内存空间时,直接用delete;回收用new[]分配的数组对象的内存空间时,需要用delete[]。 调用new所包含的动作:从系统中申请一块内存,并调用对象的构造函数;调用delete所包含的动作:先调用对象的析构函数,然后将内存归还系统;调用new[n]所包含的动作:申请可容纳n个对象的空间,并调用n次构造函数来初始化这n个对象;调用delete[]所包含的...
移动站源标题:http://mip.818114.com/news/item-175432.html

C++在回收用 new 分配的单个对象的内存空间时,直接用 delete;回收用 new[] 分配的数组对象的内存空间时,需要用 delete[]。

  • 调用 new 所包含的动作:从系统中申请一块内存,并调用对象的构造函数;
  • 调用 delete 所包含的动作:先调用对象的析构函数,然后将内存归还系统;
  • 调用 new[n] 所包含的动作:申请可容纳 n 个对象的空间,并调用 n 次构造函数来初始化这 n 个对象;
  • 调用 delete[] 所包含的动作:先调用 n 次对象的析构函数,再将内存归还系统。

比如下面这段代码:

#include <iostream>
using namespace std;

class Student {
public:
    Student() {
        cout << "1. Constructor" << endl;
    }
    ~Student() {
        cout << "2. Destructor" << endl;
    }
};

int main()
{
    Student* stu = new Student();
    delete stu;
    stu = nullptr;
  
    cout << "---" << endl;
  
    Student* stuArr = new Student[2];
    delete[] stuArr; // 不要漏了[]
    stuArr = nullptr;
  
    return 0;
}

运行结果为:

需要注意的是:若将 delete[] stuArr 改为 delete stuArr,则会导致 stuArr 指向的2个Student对象中的剩余1个未被销毁,造成内存泄漏。

免责声明:本网部分文章和信息来源于互联网,本网转载出于传递更多信息和学习之目的,并不意味着赞同其观点或证实其内容的真实性,如有侵权请通知我们删除!(留言删除
 
 
更多>同类行业

同类新闻
最新资讯
最新发布
最受欢迎
网站首页  |  黄页  |  联系方式  |  信息  |  版权隐私  |  网站地图  |  API推送  |  网站留言  |  RSS订阅  |  违规举报  |  京ICP备2000095号