首页 > 试题广场 > 以下关于C++语言中虚函数的描述正确的有()
[不定项选择题]
以下关于C++语言中虚函数的描述正确的有()
  • 构造函数不可以是虚函数
  • 析构函数不可以是纯虚函数
  • 构造函数中不应该调用纯虚函数
  • struct中不可以定义虚函数
虚析构函数是为了让通过基类指针或引用可以正确释放派生类对象。有时候如果想让基类成为一个抽象类,也就是不能被实例化,可以为类引入一个纯虚函数。但如果手上没有任何pure virtual函数时,该怎么办?由于抽象类总是会被作为基类用于派生的,而基类就该有一个虚的析构函数,并且由纯虚函数可以导致抽象类。所以常常把基类的析构函数声明为纯虚析构函数。又由于所有对象析构时,最后都会调用其基类的析构函数,所以基类的析构函数必须有定义。纯虚析构函数也不例外。
B 错误!!!
编辑于 2019-08-27 10:00:59 回复(0)
答案B 感觉答案是有点问题的。 百度查了查,c++中析构函数是可以为纯虚函数的,但是前提是:必须为其实现析构函数,否则派生类无法继承,也无法编译通过。 这里面有一个误区,有人认为,virtual f()=0这种纯虚函数语法就是没有定义体的语义。 其实,这是不对的。这种语法只是表明这个函数是一个纯虚函数,因此这个类变成了抽象类,不能产生对象。我们完全可以为纯虚函数指定函数体 。 想了解很多,可以看看http://blog.csdn.net/yapian8/article/details/46418687
发表于 2020-01-01 23:53:56 回复(0)
在父类的构造函数 和 析构函数 中都不能调用纯虚函数(不能以任何方式调用)。
发表于 2019-10-14 16:00:07 回复(0)
析构函数可以是纯虚,不过需要在父类中添加函数体!!!!
发表于 2019-09-05 14:07:59 回复(0)

B 析构函数是可以纯虚函数的,而且建议基类中纯虚,子类重写

发表于 2019-07-31 23:16:47 回复(0)
虚构函数提供了在继承模式下类共性的传承。
纯虚函数存在的意义是?在虚函数后面加上=0的意思是?
发表于 2019-07-11 20:30:05 回复(1)