下列关于虚函数的说明中,正确的是 。 A. 从虚基类继承的函数都是虚函数。 B. 虚函数不得是静态成员函数。 C.只能通过指针和引用调用虚函数。 D.抽象类中的成员函数都是虚函数
时间: 2024-05-24 15:15:03 浏览: 215
正确选项为 D. 抽象类中的成员函数都是虚函数。
解析:
A. 从虚基类继承的函数都是虚函数。——虚基类继承并不会改变函数的虚函数属性,只有在基类中声明的虚函数才是虚函数。
B. 虚函数不得是静态成员函数。——虚函数可以是静态成员函数。
C. 只能通过指针和引用调用虚函数。——虚函数也可以通过对象调用,但是对象调用时,虚函数的调用机制与普通函数相同。
D. 抽象类中的成员函数都是虚函数。——是的,抽象类中的成员函数都是纯虚函数,纯虚函数是一种特殊的虚函数。如果一个类中有纯虚函数,那么这个类就是抽象类,抽象类不能被实例化,只能被继承。
相关问题
下列关于虚基类的叙述中,错误的是() A. 使用虚基类可以消除由多继承产生的二义性 B. 构造派生类对象时,虚基类的构造函数只被调用一次 C. 声明“class B:virtual public A”说明类B为虚基类。 D. 建立派生类对象时,首先调用虚基类的构造函数 正确答案: C:声明“class B:virtual public A”说明类B为虚基类。;
选项C是错误的,因为声明"class B: virtual public A"说明的是类B继承了虚基类A,而不是B是虚基类。虚基类是被继承的类,而不是继承它的类。因此,选项C是错误的。选项A、B和D是正确的。使用虚基类可以消除由多继承产生的二义性;构造派生类对象时,虚基类的构造函数只被调用一次;建立派生类对象时,首先调用虚基类的构造函数。
1、如果派生类以protected方式继承基类,则原基类protected和public成员在派生类的访问性是分别是( ) A、public和public B、public和protected C、protected和public D、protected和protected 2、有如下头文件: Int F1(); Static int F2(); Class CA { Public: Int F3(); Static int F4(); }; 在所描述的函数中,具有隐含this指针的是( ) A、F1 B、F2 C、F3 D、F4 3、派生类的成员函数不能访问基类的( ) A、公有成员和保护成员 B、公有成员 C、私有成员 D、保护成员 4、按照“后进先出”原则组织数据的数据结构是( ) A、队列 B、栈 C、双向链表 D、二叉树 5、下列关于虚函数的说明中,正确的是( ) A、从虚基类继承的函数都是虚函数 B、虚函数不得是静态成员函数 C、只能通过指针或者引用调用虚函数 D、抽象类中的成员函数都是虚函数
1、如果派生类以protected方式继承基类,则原基类protected和public成员在派生类的访问性是分别是( B、public和protected )
2、具有隐含this指针的函数是( C、F3 )
3、派生类的成员函数不能访问基类的( C、私有成员 )
4、按照“后进先出”原则组织数据的数据结构是( B、栈 )
5、下列关于虚函数的说明中,正确的是( C、只能通过指针或者引用调用虚函数 )
阅读全文