测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A67906. 下列代码中, s1->draw(); 和 s2->draw(); 输出不同结果的主要原因是( )。1 class Shape {

单选题

题目描述

下列代码中, s1->draw(); s2->draw(); 输出不同结果的主要原因是( )。

1 class Shape {
2 public:
3  virtual void draw() {
4   cout << "绘制图形" << endl;
5  }
6 
7  virtual ~Shape() {}
8 };
9
10 class Circle : public Shape {
11 public:
12  void draw() override {
13   cout << "绘制圆形" << endl;
14  }
15 };
16
17 class Rectangle : public Shape {
18 public:
19  void draw() override {
20   cout << "绘制矩形" << endl;
21  }
22 };
23
24 int main() {
25  Shape* s1 = new Circle();
26  Shape* s2 = new Rectangle();
27
28  s1->draw();
29  s2->draw();
30
31  delete s1;
32  delete s2;
33  return 0;
34 }

选项(单选)