下列有关析构函数的描述中,正确的是 5

A.析构函数只能在类内定义B.析构函数可以有多个参数C.析构函数只能有一个参数D.在对象释放时,自动调用析构函数... A.析构函数只能在类内定义
B.析构函数可以有多个参数

C.析构函数只能有一个参数
D.在对象释放时,自动调用析构函数
展开
 我来答
热爱学习的Genji
高粉答主

2020-11-06 · 说的都是干货,快来关注
知道小有建树答主
回答量:1894
采纳率:100%
帮助的人:31.5万
展开全部

在对象释放时,自动调用析构函数。选D。

析构函数(destructor)是成员函数的一种,它的名字与类名相同,但前面要加~,没有参数和返回值

一个类有且仅有一个析构函数。如果定义类时没写析构函数,则编译器生成默认析构函数。如果定义了析构函数,则编译器不生成默认析构函数。

析构函数在对象消亡时即自动被调用。可以定义析构函数在对象消亡前做善后工作。例如,对象如果在生存期间用 new 运算符动态分配了内存,则在各处写 delete 语句以确保程序的每条执行路径都能释放这片内存是比较麻烦的事情。

有了析构函数,只要在析构函数中调用 delete 语句,就能确保对象运行中用 new 运算符分配的空间在对象消亡时被释放。

扩展资料:

析构函数与构造函数相反,当对象结束其生命周期,如对象所在的函数已调用完毕时,系统会自动执行析构函数。

以C++语言为例:析构函数名也应与类名相同,只是在函数名前面加一个位取反符~,例如~stud( ),以区别于构造函数。它不能带任何参数,也没有返回值(包括void类型)。

只能有一个析构函数,不能重载。如果用户没有编写析构函数,编译系统会自动生成一个缺省的析构函数(即使自定义了析构函数,编译器也总是会为我们合成一个析构函数,并且如果自定义了析构函数,编译器在执行时会先调用自定义的析构函数再调用合成的析构函数),它也不进行任何操作。

闪闪红红星
2010-09-02 · TA获得超过924个赞
知道小有建树答主
回答量:613
采纳率:0%
帮助的人:380万
展开全部
D
类外定义也行,不能有参数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式