GESP C++ 真题 · 逐题精解
首页C++六级真题 › 2026年3月 › 第2题

GESP 2026年3月 C++六级 单选题 第2题

C++六级单选题2026年3月第2题

所属知识点:继承·多态·虚函数 难度要求:— 考频:—

下列代码中 s1->draw() 和 s2->draw() 输出不同结果的主要原因是:
class Shape { public: virtual void draw() { cout<<"绘制图形"<<endl; } virtual ~Shape(){} };
class Circle : public Shape { void draw() override { cout<<"绘制圆形"<<endl; } };
class Rectangle : public Shape { void draw() override { cout<<"绘制矩形"<<endl; } };
Shape* s1 = new Circle(); Shape* s2 = new Rectangle();
s1->draw(); s2->draw();

正确答案:B

题目解析

draw() 是虚函数,基类指针按对象实际类型动态分派,故输出不同,选 B。……

完整解析为会员内容二级及以上的逐题精讲需开通 VIP。一级解析全部免费。前往 GESPPASS 解锁

想系统刷完 GESP C++ 1~8 级真题,并查看每道题的逐题精讲?

进入 GESPPASS 开始练习