问题,如下代码的输出
|
A FuncA called FuncB called FuncA called FuncB called B FuncA called FuncBB called FuncA called FuncB called C FuncA called FuncBB called FuncAB called FuncBB called D FuncAB called FuncBB called FuncA called FuncB called |
语句1.定义了一个派生类B的对象b;.
语句2.定义了一个基类A的指针pa,
语句3.将基类指针,指向派生类对象
语句4.定义了一个派生类指针pa2.
语句5.一个指向派生类的基类指针调用了FuncA()函数,尽管派生类中重写了FuncA()函数,但是因为基类中的FuncA()函数不是虚函数,所以语句5仍然调用的是基类中的FuncA()函数。输出FuncA called。
语句6一个指向派生类的基类指针调用了FuncB()函数,因为基类中的FuncB()函数为虚函数,所以会调用派生类中的FuncB()函数。输出FuncBB called。
语句7和语句8都是调用基类成员函数。
所以选B
博客围绕C++代码展开,涉及定义派生类B的对象b、基类A的指针pa并将其指向派生类对象,还定义了派生类指针pa2,最后得出‘FuncA called’,答案选B。






