求学快递网是国内领先的B2M2C教育培训网上信息平台!

首页 | 分站加盟 | 课程发布 | 最新课程 | 最新机构 | 培训专题 | 全国分站 | 帮助中心

计算机等级考试_计算机等级考试报名_计算机考试成绩查询_求学快递网

计算机等级考试一步到位
您的位置:求学快递网 > 计算机等级考试 > 考试辅导 > 计算机二级 > 计算机C++知识点:堆和类数组 - 正文内容

计算机C++知识点:堆和类数组

计算机C++知识点:堆和类数组

 

求学快递网计算机等级考试专题重点推荐:2016年计算机级考试报考时间 2016年计算机二级考试证书领取时间2016年计算机二级考试报考指南2016年计算机二级考试大纲2016年计算机二级考试政策2016年计算机二级考试报考条件2016年计算机二级考试科目等最新新闻资讯。

 

       堆和类数组 
   前面提到,类对象数组的每个元素都要调用构造函数和析构函数。下面的例子给出了一个错误的释放类数组所占用的内存的例子。 
   #include iostream.h 
   class Date 
   { 
   int mo, da, yr; 
   public: 
   Date() { cout < ~Date() { cout< }
   int main() 
   { 
   Date* dt = new Date[5]; 
   cout < delete dt; //这儿
   return 0; 
   } 
  指针dt指向一个有五个元素的数组。按照数组的定义,编译器会让new运算符调用Date类的构造函数五次。但是delete被调用时,并没有明确告诉编译器指针指向的Date对象有几个,所以编译时,只会调用析构函数一次。下面是程序输出; 
   Date constructor 
   Date constructor 
   Date constructor 
   Date constructor 
   Date constructor 
   Process the date 
   Date destructor 
  为了解决这个问题,C++允许告诉delete运算符,正在删除的那个指针时指向数组的,程序修改如下: 
   #include iostream.h 
   class Date 
   { 
   int mo, da, yr; 
   public: 
   Date() { cout < ~Date() { cout< }
   int main() 
   { 
   Date* dt = new Date[5]; 
   cout < delete [] dt; //这儿
   return 0; 
   } 
  最终输出为: 
   Date constructor 
   Date constructor 
   Date constructor 
   Date constructor 
   Date constructor 
   Process the date 
   Date destructor 
   Date destructor 
   Date destructor 
   Date destructor 
   Date destructor

 

 

 

关注求学快递网计算机等级考试专题,帮你了解最新的2016年计算机二级考试资讯服务2016计算机二级考试成绩查询,让你轻松备考计算机等级考试!

求学快递网计算机等级考试专题的小编们根据网民搜索喜爱,第一时间公布2016年计算机二级模拟试题2016年计算机二级考试应试技巧计算机二级考试历年真题2016年计算机二级考试章节复习供广大求学爱好者学习使用,欢迎继续关注求学快递网计算机等级考试专题,并给我们提供宝贵的意见!

 

相关推荐

计算机等级考试最新机试技巧
计算机等级考试高效利用技巧

最新计算机资讯

热点专题

计算机等级考试经验技巧分享

关于本站  诚征英才  广告服务  招生服务  免责声明  分站加盟  VIP会员  联系我们  网站地图  网站记事

版权所有 CopyRight 2008-2017 粤ICP备14009694号 www.studyems.com, Inc. All Rights Reserved
违法和不良信息举报邮箱:2881796407@qq.com 举报电话: