类B是类A的公有派生类,类A和类B中都定义了虚函数func(),p是一个指向类A对象的指针,则p->A::func()(   )

类B是类A的公有派生类,类A和类B中都定义了虚函数func(),p是一个指向类A对象的指针,则p->A::func()(   )


A、

调用类A中的函数func()


B、

调用类B中的函数func()


C、

根据p所指的对象类型而确定调用类A中或类B中的函数func()


D、

既调用类A中的函数,也调用类B中的函数


【正确答案】:A
【题目解析】:

p->A::func()中因为有类名限定符,所以明确指示将调用类A中的func()函数,在这种情况下,指针p指向基类或派生类对象,都不影响调用的函数。故本题选A。

如果调用语句是p->func(),则要根据指针p的实际指向情况,决定调用类A或类B中的成员函数,这才是动态多态。


Top