TreeMind树图在线AI思维导图
当前位置:树图思维导图模板资格考试计算机2019年计算机二级C++考点析构函数思维导图

2019年计算机二级C++考点析构函数思维导图

  收藏
  分享
免费下载
免费使用文件
浪够了就心伤了 浏览量:12023-04-10 17:35:26
已被使用0次
查看详情2019年计算机二级C++考点析构函数思维导图

2019年9月份的计算机二级考试已经顺利结束,没有参加这次考试的小伙伴们接下来就要积极准备下一次的考试了。为此,树图网小编为大家整理2019年计算机二级C++考点析构函数相关信息,希望能够帮助到大家,了解更多计算机二级考试相关信息敬请关注树图网。

树图思维导图提供 2019年计算机二级C++考点析构函数 在线思维导图免费制作,点击“编辑”按钮,可对 2019年计算机二级C++考点析构函数  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:164709b5d9779eb5538c7e27c23bbe7c

思维导图大纲

2019年计算机二级C++考点析构函数思维导图模板大纲

析构函数

下面的程序给出了一新的Date类,其中包括一个字符串指针,用来表示月份。

#include iostream.h

#include string.h

class Date

int mo,da,yr;

char *month;

public:

Date(int m=0, int d=0, int y=0);

~Date();

void display() const;

Date::Date(int m,int d,int y)

static char *mos[] =

January,February,March,April,May,June,

July,August,September,October,November,December

mo=m; da=d; yr=y;

if(m!=0)

month=new char[strlen(mos[m-1])+1];

strcpy(month, mos[m-1]);

else month = 0;

Date::~Date()

delete [] month;

void Date::display() const

if(month!=0) cout< }

int main()

Date birthday(8,11,1979);

birthday.display();

return 0;

在Date对象的构造函数中,首先用new运算符为字符串month报考分配了内存,然后从内部数组中把月份的名字拷贝给字符串指针month。

析构函数在删除month指针时,可能会出现一些问题。当然从这个程序本身来看,没什么麻烦;但是从设计一个类的角度来看,当Date类用于赋值时,就会出现问题。假设上面的main()修改为"

int main()

Date birthday(8,11,1979);

Date today;

today=birthday;

birthday.display();

return 0;

这会生成一个名为today的空的Date型变量,并且把birthday值赋给它。如果不特别通知编译器,它会简单的认为类的赋值就是成员对成员的拷贝。在上面的程序中,变量birthday有一个字符型指针month,并且在构造函数里用new运算符初始化过了。当birthday离开其作用域时,析构函数会调用delete运算符来释放内存。但同时,当today离开它的作用域时,析构函数同样会对它进行释放操作,而today里的month指针是birthday里的month指针的一个拷贝。析构函数对同一指针进行了两次删除操作,这会带来不可预知的后果。

如果假设today是一个外部变量,而birthday是一个自变量。当birthday离开其作用域时,就已经把对象today里的month指针删除了。显然这也是不正确的。

再假设有两个初始化的Date变量,把其中一个的值赋值给另一个:

Date birthday(8,11,1979);

Date today(12,29,2003);

today=birthday;

问题就更复杂了,当这两个变量离开作用域时,birthday中的month的值已经通过赋值传递给了today。而today中构造函数用new运算符给month的值却因为赋值被覆盖了。这样,birthday中的month被删除了两次,而today中month却没有被删除掉。

以上就是小编整理的关于2019年计算机二级C++考点析构函数,想要参加二级考试的同学们都来了解一下吧。需要及时了解考试动态的小伙伴可" 免费预约短信提醒"届时树图网会及时为大家推送2019年计算机二级考试相关信息提醒。树图网友情提示:对于想要参加计算机二级考试的小伙伴们,树图网特地为您准备了计算机二级考试相关资料,请大家继续关注哦!

相关思维导图模板

904名中国成年人第三磨牙相关知识、态度、行为和病史的横断面调查思维导图

树图思维导图提供 904名中国成年人第三磨牙相关知识、态度、行为和病史的横断面调查 在线思维导图免费制作,点击“编辑”按钮,可对 904名中国成年人第三磨牙相关知识、态度、行为和病史的横断面调查  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:10b9a8a2dd2fb4593f8130ef16c320fc

辊压断带分析思维导图

树图思维导图提供 辊压断带分析 在线思维导图免费制作,点击“编辑”按钮,可对 辊压断带分析  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:55fdf0827fa2a220b0b4047d75df5032