运行以下 C++ 代码,屏幕将输出 “derived class”。
#include <iostream>
using namespace std;
class base {
public:
virtual void show() {
cout << "base class" << endl;
}
};
class derived : public base {
public:
void show() override {
cout << "derived class" << endl;
}
};
int main() {
base* b;
derived d;
b = &d;
b->show();
return 0;
}C++类:构造函数(对象创建时调用)、析构函数(对象销毁时调用)、虚函数(实现多态)。构造函数不能为虚。
构造函数不能是虚函数(虚表在构造函数完成后才建立)。析构函数可以且通常应该为虚函数(防止内存泄漏)。
【考点】C++ 虚函数机制|多态|虚表
本题考查 GESP 六级大纲「面向对象基础」模块中关于虚函数表(vtable)与运行时多态的机制。命题人专门卡住那些只背"继承"概念、不懂"虚表"的学生——他们往往误以为只要声明了 show() 就是虚函数,或者认为基类指针调用派生类函数时不产生多态。