list1205.cpp

来自「teach yourself C++ in 21 days 第五版」· C++ 代码 · 共 47 行

CPP
47
字号
//Listing 12.5 Overriding a base class method in a derived class
#include <iostream>
using std::cout;

enum BREED { GOLDEN, CAIRN, DANDIE, SHETLAND, DOBERMAN, LAB };

class Mammal
{
  public:
    // constructors
    Mammal() { cout << "Mammal constructor...\n"; }
    ~Mammal() { cout << "Mammal destructor...\n"; }

    //Other methods
    void Speak()const { cout << "Mammal sound!\n"; }
    void Sleep()const { cout << "shhh. I'm sleeping.\n"; }

  protected:
    int itsAge;
    int itsWeight;
};

class Dog : public Mammal
{
  public:
    // Constructors
    Dog(){ cout << "Dog constructor...\n"; }
    ~Dog(){ cout << "Dog destructor...\n"; }

    // Other methods
    void WagTail() const  { cout << "Tail wagging...\n"; }
    void BegForFood() const  { cout << "Begging for food...\n"; }
    void Speak() const { cout << "Woof!\n"; }

  private:
    BREED itsBreed;
};

int main()
{
   Mammal bigAnimal;
   Dog fidoFido;
   bigAnimal.Speak();
   fidoFido.Speak();
   return 0;
}

⌨️ 快捷键说明

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