⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 simpleevent.cpp

📁 24学时攻克C++光盘源代码 深入浅出 方便实用
💻 CPP
字号:
 // Listing 22.1
 #include <iostream>

 class Condition
 {
 public:
     Condition() { }
     virtual ~Condition() {}
     virtual void Log() = 0;
 };

 class Normal : public Condition
 {
 public:
     Normal() { Log(); }
     virtual ~Normal() {}
     virtual void Log()
         { std::cout << "Logging normal conditions...\n"; }
 };

 class Error : public Condition
 {
 public:
     Error() {Log();}
     virtual ~Error() {}
     virtual void Log() { std::cout << "Logging error!\n"; }
 };

 class Alarm : public Condition
 {
 public:
     Alarm ();
     virtual   ~Alarm() {}
     virtual void Warn() { std::cout << "Warning!\n"; }
     virtual void Log() { std::cout << "General Alarm log\n"; }
     virtual void Call() = 0;
 };

 Alarm::Alarm()
 {
     Log();
    Warn();
 }

 class FireAlarm : public Alarm
 {
 public:
     FireAlarm(){Log();};
     virtual ~FireAlarm() {}
     virtual void Call() { std::cout<< "Calling Fire Dept.!\n"; }
     virtual void Log() { std::cout << "Logging fire call.\n"; }
 };

 int main()
 {
     int input;
     int okay = 1;
     Condition * pCondition;
     while (okay)
     {
         std::cout << "(0)Quit (1)Normal (2)Fire: ";
         std::cin >> input;
         okay = input;
         switch (input)
         {
         case 0:
             break;
         case 1:
             pCondition = new Normal;
             delete pCondition;
             break;
         case 2:
             pCondition = new FireAlarm;
             delete pCondition;
             break;
         default:
             pCondition = new Error;
             delete pCondition;
             okay = 0;
             break;
         }
     }
     return 0;
 }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -