单选题
👁️ 浏览量:

试题题干

当基类指针指向派生类对象时,利用基类指针调用派生类中与基类同名但被派生类重写后的成员函数时,调用的是(    )

A

基类的成员函数

B

派生类的成员函数

C

不确定

D

随机调用

参考答案

正确答案:

试题解析

当使用指针调用类中的函数时,需要根据指针的类型来决定可调用的函数。编译器看到哪个类的指针,就会认为要通过它访问哪个类的成员。

(1)如果一个指针是基类类型的,则不管它指向的是基类对象还是派生类对象,都仅能调用基类中声明的函数,而不能调用基类中没有声明而仅在派生类中声明的函数。

(2)如果一个指针是派生类类型的,则调用的是派生类中的函数,如果派生类中没有声明这个函数,则调用从基类继承的同名函数。

故本题中,用基类指针调用基类的成员函数,故选A。