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;
}选项(单选)
答案解析
详细答案解析为会员权益,按每日次数查看。
开通 / 升级会员
上一题
下一题