list1203.cpp

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

CPP
78
字号
//Listing 12.3 Constructors and destructors called.
#include <iostream>
using namespace std;
enum BREED { GOLDEN, CAIRN, DANDIE, SHETLAND, DOBERMAN, LAB };

class Mammal
{
  public:
     // constructors
     Mammal();
    ~Mammal();

    //accessors
    int GetAge() const { return itsAge; }
    void SetAge(int age) { itsAge = age; }
    int GetWeight() const { return itsWeight; }
    void SetWeight(int weight) { itsWeight = weight; }

    //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();
    ~Dog();

    // Accessors
    BREED GetBreed() const { return itsBreed; }
    void SetBreed(BREED breed) { itsBreed = breed; }

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

  private:
    BREED itsBreed;
};

Mammal::Mammal():
itsAge(3),
itsWeight(5)
{
   std::cout << "Mammal constructor... " << endl;
}

Mammal::~Mammal()
{
   std::cout << "Mammal destructor... " << endl;
}

Dog::Dog():
itsBreed(GOLDEN)
{
   std::cout << "Dog constructor... " << endl;
}

Dog::~Dog()
{
   std::cout << "Dog destructor... " << endl;
}
int main()
{
   Dog Fido;
   Fido.Speak();
   Fido.WagTail();
   std::cout << "Fido is " << Fido.GetAge() << " years old" << endl;
   return 0;
}

⌨️ 快捷键说明

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