36 lines
637 B
C++
36 lines
637 B
C++
class Device {
|
|
public:
|
|
virtual void turnOn() = 0;
|
|
virtual void turnOff() = 0;
|
|
virtual ~Device() {}
|
|
};
|
|
|
|
class LED : public Device {
|
|
public:
|
|
void turnOn() override {
|
|
// 點亮 LED
|
|
}
|
|
void turnOff() override {
|
|
// 熄滅 LED
|
|
}
|
|
};
|
|
|
|
class Motor : public Device {
|
|
public:
|
|
void turnOn() override {
|
|
if(needsWarmup()) {
|
|
warmup(); // 預熱馬達
|
|
}
|
|
// 啟動馬達
|
|
}
|
|
void turnOff() override {
|
|
// 關閉馬達
|
|
}
|
|
private:
|
|
bool needsWarmup() {
|
|
// 判斷馬達是否需要預熱
|
|
}
|
|
void warmup() {
|
|
// 預熱馬達
|
|
}
|
|
}; |