首页 > 试题广场 >

对于析构函数,下面哪一种说法是错误的?

[单选题]
对于析构函数,下面哪一种说法是错误的?

  • 一个对象的生命周期始于构造函数执行,终于析构函数执行
  • 果类中没有显式定义析构函数,编译器就自动生成一个公有的析构函数。
  • 一个类中可重载定义多个析构函数
  • 假设A是一个类,那么语句“AasC41;”将执行析构函数4次。
推荐
C。考察的是析构函数和构造函数的概念。(该题我已经在9月12日答过一次了,D选项语句未表述清楚
其两者的特点:
  • 析构函数就是对象在销毁的时候自动调用的函数,构造函数创建对象是调用。所以A正确
  • 构造函数可以有多个来构成重载,但析构函数只能有一个,不能构成重载。所以C错误
  • 与构造函数相同的是没有显式的写出析构函数,那么编译器也会自动的加上一个析构函数,什么都不做;如果显式的写了析构函数,那么将会覆盖默认的析构函数。所以B正确。


编辑于 2019-12-13 14:16:40 回复(1)
答案:选C
解析:
构造函数在每次创建类的新对象时执行,析构函数在类对象超出作用域时执行。所以A正确
如果类中没有显式定义析构函数,编译器会自动产生一个公有的析构函数来做一些内存回收工作。所以B正确。
析构函数的名称与类的名称是完全相同的,并且不会返回任何类型,也不会返回 void,不能重载,所以析构函数只能有一个。所以C错误。
至于选项D,语句“AasC41;”没有描述清楚
编辑于 2019-12-12 16:51:30 回复(0)
析构函数就是对象在销毁的时候自动调用的函数,构造函数创建对象是调用。所以A正确。 构造函数可以有多个来构成重载,但析构函数只能有一个,不能构成重载。所以C错误
发表于 2021-10-19 15:49:17 回复(0)
我就是想问一下这个D是个啥东西!




发表于 2020-07-26 15:23:52 回复(0)
析构函数不能重载 因此选C
发表于 2019-12-17 08:19:36 回复(0)