virtmethod.cpp

来自「24学时攻克C++光盘源代码 深入浅出 方便实用」· C++ 代码 · 共 32 行

CPP
32
字号
 //Listing 17.1 Using virtual methods
 #include <iostream>

 class Mammal
 {
 public:
     Mammal():itsAge(1) { std::cout << "Mammal constructor...\n"; }
     ~Mammal() { std::cout << "Mammal destructor...\n"; }
     void Move() const { std::cout << "Mammal move one step\n"; }
     virtual void Speak() const { std::cout << "Mammal speak!\n"; }

 protected:
     int itsAge;
 };

 class Dog : public Mammal
 {
 public:
     Dog() { std::cout << "Dog constructor...\n"; }
     ~Dog() { std::cout << "Dog destructor...\n"; }
     void WagTail() { std::cout << "Wagging Tail...\n"; }
     void Speak()const { std::cout << "Woof!\n"; }
     void Move()const { std::cout << "Dog moves 5 steps...\n"; }
 };

 int main()
 {
     Mammal *pDog = new Dog;
     pDog->Move();
     pDog->Speak();
     return 0;
 }

⌨️ 快捷键说明

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