首页 > 试题广场 >

以下关于C++语言中虚函数的描述正确的有()

[不定项选择题]
以下关于C++语言中虚函数的描述正确的有()
  • 构造函数不可以是虚函数
  • 析构函数不可以是纯虚函数
  • 构造函数中不应该调用纯虚函数
  • struct中不可以定义虚函数
虚析构函数是为了让通过基类指针或引用可以正确释放派生类对象。有时候如果想让基类成为一个抽象类,也就是不能被实例化,可以为类引入一个纯虚函数。但如果手上没有任何pure virtual函数时,该怎么办?由于抽象类总是会被作为基类用于派生的,而基类就该有一个虚的析构函数,并且由纯虚函数可以导致抽象类。所以常常把基类的析构函数声明为纯虚析构函数。又由于所有对象析构时,最后都会调用其基类的析构函数,所以基类的析构函数必须有定义。纯虚析构函数也不例外。
B 错误!!!
编辑于 2019-08-27 10:00:59 回复(2)
在父类的构造函数 和 析构函数 中都不能调用纯虚函数(不能以任何方式调用)。
发表于 2019-10-14 16:00:07 回复(2)
答案B 感觉答案是有点问题的。 百度查了查,c++中析构函数是可以为纯虚函数的,但是前提是:必须为其实现析构函数,否则派生类无法继承,也无法编译通过。 这里面有一个误区,有人认为,virtual f()=0这种纯虚函数语法就是没有定义体的语义。 其实,这是不对的。这种语法只是表明这个函数是一个纯虚函数,因此这个类变成了抽象类,不能产生对象。我们完全可以为纯虚函数指定函数体 。 想了解很多,可以看看http://blog.csdn.net/yapian8/article/details/46418687
发表于 2020-01-01 23:53:56 回复(0)
有同学知道D相关的内容吗。。?结构体的继承和虚函数的知识
发表于 2020-04-10 18:45:08 回复(2)
虚函数与纯虚函数:
A、C:
首先说下什么是构造函数,构造函数是用来初始化对象的。假如子类可以继承基类构造函数,那么子类对象的构造将使用基类的构造函数,而基类构造函数并不知道子类的有什么成员,显然是不符合语义的。
B参考其他答案
发表于 2020-02-27 15:37:15 回复(0)
析构函数可以是纯虚,不过需要在父类中添加函数体!!!!
发表于 2019-09-05 14:07:59 回复(0)
对纯虚函数在父类和子类之间的调用问题不怎么清楚。
发表于 2022-06-21 19:55:21 回复(0)
纯虚函数……好家伙少看一个字
发表于 2021-03-24 16:46:42 回复(0)
<p>C选项,能调用别的抽象类的纯虚函数吗</p>
发表于 2020-10-09 23:53:37 回复(0)

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

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