基类中声明了虚函数后,派生类中对应的函数也必须声明为虚函数    没有虚函数,一定不能实现动态绑定的

如题所述

全错。

派生类不必再声明成虚函数了,只要基类声明就可以,基类声明虚函数后,会建一张虚函数表。

一旦一个函数被声明为虚函数,从该点之后的继承层次结构中都是虚函数,不管它在有没有再次声明是不是虚函数,有些程序员为了提高程序的清晰度,在继承结构中喜欢再次明确的声明这些虚函数.

至于“判定覆盖的依据是两者都是虚函数,发生在派生类与基类之间。”只是解释了什么是覆盖,派生类将基类中的虚函数重写即为覆盖。

扩展资料:

class A的成员函数print()已经成了虚函数,那么class B的print()成了虚函数,回答是Yes,我们只需在把基类的成员函数设为virtual,其派生类的相应的函数也会自动变为虚函数。所以,class B的print()也成了虚函数。

那么对于在派生类的相应函数前是否需要用virtual关键字修饰,那就是你自己的问题了(语法上可加可不加,不加的话编译器会自动加上,但为了阅读方便和规范性,建议加上)。

参考资料来源:百度百科-虚函数

温馨提示:内容为网友见解,仅供参考
无其他回答

基类中声明了虚函数后,派生类中对应的函数也必须声明为虚函数 没...
派生类不必再声明成虚函数了,只要基类声明就可以,基类声明虚函数后,会建一张虚函数表。一旦一个函数被声明为虚函数,从该点之后的继承层次结构中都是虚函数,不管它在有没有再次声明是不是虚函数,有些程序员为了提高程序的清晰度,在继承结构中喜欢再次明确的声明这些虚函数.至于“判定覆盖的依据是...

关于虚函数的描述错误的是
错误的是基类中说明了虚函数后,派生类中对应的函数也必须说明为虚数。基类中说明的虚函数,在派生类中自然就是虚函数,对于纯虚函数必须在后面继承的派生类中给出具体的实现;静态成员函数不能进行动态联编,所以虚函数不能是静态的。一、虚函数 虚函数,是指被virtual关键字修饰的成员函数。在某基类中...

C++考试题 求解答
2. 答案是C c.基类中说明了虚函数后,派生类中将其对应的函数可不必说明为虚函数(这个不懂)这个就是虚函数的特性,只要派生类的函数与基类的函数同名、同原型,自动为虚函数,d.派生类的虚函数与基类的虚函数具有不同的参数个数和类型(这个求解释)这个如果同名不同参数(不同原型),这个是重载...

为什么构造函数不能声明为虚函数,析构函数可以
构造函数不能声明为虚函数,析构函数可以声明为虚函数,而且有时是必须声明为虚函数。不建议在构造函数和析构函数里面调用虚函数。构造函数不能声明为虚函数的原因是:1 构造一个对象的时候,必须知道对象的实际类型,而虚函数行为是在运行期间确定实际类型的。而在构造一个对象时,由于对象还未构造成功。

基类析构函数设为虚函数后,派生类的析构函数需要写出来吗 系统自己添 ...
只要基类声明为析构函数,派生类的所有析构函数自然也为虚函数。派生类的析构函数需不需要写出来取决于派生类析构函数的行为。如果派生类中有基类析构函数中没有的数据成员,一般需要重写派生类析构函数

C++基础-关键字virtual
virtual 说明符指定非静态成员函数为虚函数并支持动态调用派发。它只能在非静态成员函数的首个声明(即当它于类定义中声明时)的 声明说明符序列 中出现。解释:虚函数是可在派生类中覆盖其行为的成员函数。与非虚函数相反,即使没有关于该类实际类型的编译时信息,仍然保留被覆盖的行为。当使用到基类的...

派生类如果继承了抽象基类中的纯虚函数,而在该派生类中没有对此纯虚函 ...
这应该是笔误吧,如果派生类中没有对基类的纯虚函数进行定义,那么派生类自身也就成了一个抽象类,无法被实例化。如果也没有进行声明,那继承下来的函数还是纯虚函数。因为它明确地告诉了编译器函数有操作名称,但是指向无效地址。如果在派生类中对基类的纯虚函数进行了重新声明或者定义,那么此函数的操作...

C++基类的析构函数为何要声明为虚函数
通过实例分析,展示基类析构函数声明为虚函数的重要性。定义基类`base`与派生类`derived`。两者各自包含构造函数、析构函数和一个`int`型指针成员。在主函数中,创建基类类型的指针`pBase`,指向派生类对象,随后释放`pBase`所指向对象的存储空间。运行结果显示,虽然释放了存储空间,但派生类的析构函数并...

请问c++中,基类和派生类的函数都有virtual什么意思?
virtual是虚拟的意思,也就是说那些函数是虚函数。基类相当于父亲,派生类相当于儿子,儿子可以继承爸爸的东西。所以方法可以重写。编译的时候就不知道如果调用派生类对象的时候调用哪个函数了 加了virtual可以把函数的绑定推迟到运行时。也就是你运行时绑定函数,根据你的参数调用基类函数还是派生类的函数 ...

c++语言的程序,附答案
8、当基类中的某个成员函数被声明为虚函数后,此虚函数就可以在一个或多个派生类中被重新定义,在派生类中重新定义时,其函数原型,包括返回类型、___ 、___ 、参数类型以及参数的顺序都必须与基类中的原型完全相同。9、C++的I\/O是以 的形式实现的,每个C++编译系统都带有一个面向对象的输入\/输出软件包,这就是...

相似回答
大家正在搜