当前位置: 首页 > news >正文

网站产品标签文章标签怎么做卖主机 服务器的网站

网站产品标签文章标签怎么做,卖主机 服务器的网站,关于学校网站建设的请示,深圳外企公司排名目录 一、概念 1. 析构函数是什么#xff1f; 2. 为什么要有析构函数#xff1f; 3. 怎么用析构函数#xff1f; 3.1 创建析构函数 3.2 调用析构函数 二、特性 三、由编译器生成的默认析构函数 四、对象的析构顺序 1. 局部对象 2. new出来的堆对象 3. 全局对象 一、概念 1…目录 一、概念 1. 析构函数是什么 2. 为什么要有析构函数 3. 怎么用析构函数 3.1 创建析构函数 3.2 调用析构函数 二、特性 三、由编译器生成的默认析构函数 四、对象的析构顺序 1. 局部对象 2. new出来的堆对象 3. 全局对象 一、概念 1. 析构函数是什么 析构函数是一个特殊的成员函数用来释放对象使用的资源(如关闭文件、释放内存等)。 2. 为什么要有析构函数 如何释放对象申请的系统资源忘记释放怎么办能不能在销毁对象时自动释放 举个小例子 class Test { public://构造函数Test(){_arr (char*)malloc(1024*1024*1024);//申请1G空间}//销毁函数用于释放资源void Destory(){free(_arr);} private:char* _arr; };int main() {Test* t new Test;//在堆上创建一个对象delete t;//销毁一个对象while (1) {}return 0; }如果要销毁Test对象必须先使用Destory公有方法来释放资源否则会造成内存泄漏 这未免有点麻烦而且容易忘记那能否在对象销毁的同时释放资源呢 将以上程序运行起来对比前后的内存变化可以发现销毁对象前如果忘记释放资源就会造成内存泄漏等问题。 程序运行前  程序运行后         所以为避免C使用者在销毁对象时忘记释放对象使用的资源的问题C引入了析构函数在析构函数里写释放资源的代码在对象销毁时编译器会自动调用析构函数释放对象使用的资源。         析构函数相对于自己写的销毁函数其优势在于不需要自己去显示调用。  3. 怎么用析构函数 3.1 创建析构函数         创建时要注意析构函数特征析构函数名是在类名前加上字符~、无参数无返回值。         类中动态申请的资源需要在析构函数中写相应的代码手动释放。 用以下例子来说明如何创建无参构造函数和带参构造函数 创建时要注意析构函数特征析构函数名是在类名前加上字符~、无参数无返回值。 class Test { public://构造函数Test(){_arr (char*)malloc(1024*1024*1024);//申请1G空间}//析构函数在析构函数里释放资源对象被销毁时会自动被调用。~Test(){cout 析构函数调用成功 endl;free(_arr);} private:char* _arr; }; 3.2 调用析构函数         在对象销毁时编译器会自动调用析构函数。所以析构函数是不需要我们去显示调用的我们只需要记得销毁对象(特指堆上的对象)即可。 接上面的例子演示如何调用无参构造函数和带参构造函数 int main() {//在堆上创建对象tTest* t new Test;for (int i 0; i 100000; i){cout i endl;}//销毁对象tdelete t;return 0; } 二、特性 再次强调析构函数的任务不是销毁对象而是完成对象中资源的清理工作对象在销毁时会自动调用析构函数。对象的内置类型的成员变量由系统进行回收自定义类型的成员变量系统会去调用它的析构函数。 析构函数是特殊的成员函数其特征如下 1. 析构函数名是在类名前加上字符~。 2. 无参数无返回值类型。 3. 对象动态申请的资源需要在析构函数中写相应的代码手动释放。 4. 一个类只能有一个析构函数析构函数不能重载。 5. 若未显式定义系统会自动生成默认的析构函数。 6. 对象生命周期结束时C编译系统系统自动调用析构函数。 三、由编译器生成的默认析构函数 若未显式定义系统会自动生成默认的析构函数。 那什么时候需要显示的写析构函数什么时候让编译器自动生成呢         有资源申请(如使用malloc动态开辟空间)时一定要写否则会造成资源泄漏。如果类中没有申请资源时析构函数可以不写直接使用编译器生成的默认析构函数。 四、对象的析构顺序 1. 局部对象 后实例化的对象先析构先实例化的对象后析构。因为对象是定义在栈帧里面的而栈帧的建立遵循后进先出。 class A { public:~A(){cout A被析构 endl;} };class B { public:~B(){cout B被析构 endl;} };class C { public:~C(){cout C被析构 endl;} };int main() {A a;B b;C c;return 0; } 2. new出来的堆对象 堆对象的析构发生在使用delete的时候与delete的使用顺序相关。 int main() {A* a new A();B* b new B();C* c new C();delete a;delete b;delete c;return 0; } 3. 全局对象 在一个源文件中的全局对象先实例化的对象后析构。 A a; B b; C c;int main() {return 0; } ------------------------END------------------------- 才疏学浅谬误难免欢迎各位批评指正。
http://www.hkea.cn/news/14510588/

相关文章:

  • 小企业网站建设查询网站开发框架系统
  • 做房地产需要做网站吗拉新奖励的app排行
  • 昆明建设路租房信息昆明租房网站北京网站建设设计公司哪家好
  • 怎么开网站详细步骤装修平台网站
  • 做黑龙头像的网站c2c网站管理系统
  • 全栈工程师是做网站吗wordpress订单查询
  • 桐庐网站建设广州网站开发 找亦客公司优质
  • 网站建设包含内容ppt下一页
  • 现在做网站用什么软件服务器做的网站怎么使用教程
  • 物流网站模板做外贸推广的网站
  • 西安网站维保公司天河门户网
  • 荷城网站设计vps服务器购买网站
  • 网站的网站建设企业网络营销专业好吗
  • 可信网站认证服务商自己做的网站可以上架烟吗
  • 微网站开发平台免费微官网登录
  • 哈尔滨建筑专业网站软件技术用什么软件
  • 网站模板下载之后怎么做百度账号登陆
  • 百度做公司网站多少钱浙江手机版建站系统信息
  • 有哪些做问卷调查给钱的网站wordpress容器
  • wordpress显示不正常东莞网络优化哪家好
  • 做ps网页设计的网站有哪些想学编程去哪里找培训班
  • 怎么用新浪云做网站网站班级文化建设视频
  • wordpress 企业站开发php网站后台登陆地址
  • 北京学习网站建设中国著名十大vi设计案例
  • 案例学习网站建设方案设计素材网站哪个好
  • 合肥网站建设百家号wordpress 页面与目录
  • 成都高新区建设局网站wordpress 修改目录id
  • 长沙网页设计公司网站新手学做网站 电子书
  • 网站建设模板之家免费下载实战网站开发
  • 凡科建站步骤域名申请哪家好