ssy/c++上机4(附加题).cpp
2024-08-05 23:12:46 +08:00

44 lines
1.3 KiB
C++

#include <iostream>
#include <vector>
#include <string>
// 基类 CTimer
class CTimer {
protected:
unsigned long timerID;
public:
CTimer(unsigned long id) : timerID(id) {}
virtual ~CTimer() {}
// 纯虚函数,子类必须重载
virtual std::string GetTimeZone() const = 0;
unsigned long GetTimerID() const {
return timerID;
}
};
// 子类 CBeijingTimer
class CBeijingTimer : public CTimer {
public:
CBeijingTimer(unsigned long id) : CTimer(id) {}
virtual ~CBeijingTimer() {}
// 重载基类的虚函数
virtual std::string GetTimeZone() const {
return "Beijing Time";
}
};
int main() {
std::vector<CTimer*> timerList;
// 创建一个北京时间的定时器并添加到列表中
CTimer* beijingTimer = new CBeijingTimer(1);
timerList.push_back(beijingTimer);
// 查询当前所有创建的Timer并打印信息
std::cout << "Timer List:" << std::endl;
for (std::vector<CTimer*>::iterator it = timerList.begin(); it != timerList.end(); ++it) {
std::cout << "Timer ID: " << (*it)->GetTimerID() << ", Time Zone: " << (*it)->GetTimeZone() << std::endl;
}
// 清理内存
for (std::vector<CTimer*>::iterator it = timerList.begin(); it != timerList.end(); ++it) {
delete *it;
}
timerList.clear();
return 0;
}