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

A18450. 下列代码中, d1->work(); 和 d2->work(); 输出不同结果的主要原因是( )。#include <iostream> using namespace std; class Device { public: virtual void work() { cout << "Device is working" << endl; } virtual ~Device() {} }; c…

单选题 困难

题目描述

下列代码中, d1->work(); 和 d2->work(); 输出不同结果的主要原因是(    )。

#include <iostream>
using namespace std;
class Device {
public:
    virtual void work() { 
        cout << "Device is working" << endl; 
    }
    virtual ~Device() {}
};
class Printer : public Device {
public:
    void work() override { 
        cout << "Printer is printing" << endl; 
    }
};
class Scanner : public Device {
public:
    void work() override { 
        cout << "Scanner is scanning" << endl; 
    }
};
int main() {
    Device* d1 = new Printer();
    Device* d2 = new Scanner();
    d1->work();
    d2->work();
    delete d1;
    delete d2;
    return 0;
}

选项(单选)

上一题 下一题