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

📄 hour16_2.cpp

📁 《24学时精通c++》的随书源码的下半部分。欢迎下载学习。
💻 CPP
字号:
 //Listing 16.2 Using a derived object

 #include <iostream>

 

 

 class Mammal

 {

 public:

     // constructors

     Mammal():itsAge(2), itsWeight(5){}

     ~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 { std::cout << "Mammal sound!\n"; }

     void Sleep()const { std::cout << "shhh. I'm sleeping.\n"; }

 

 

 protected:

     int itsAge;

     int itsWeight;

 };

 

 class Dog : public Mammal

 {

 public:

     // Constructors

     Dog()
     {
        SetBreed("YORKIE");
     }


     ~Dog(){}

 

     // Accessors

     char * GetBreed() { return &itsBreed[0]; }     // this is a bad way! It lets the calling routine
                                                    // know where the original array is -- and could
                                                    // change it. How can this be fixed? Think about it.

     void SetBreed(char *breed) { strcpy(itsBreed, breed); }

 

     // Other methods

     void WagTail() { std::cout << "Tail wagging...\n"; }

     void BegForFood() { std::cout << "Begging for food...\n"; }

 

 private:

     char itsBreed[10];

 };

 

 int main()

 {

     Dog fido;

     fido.Speak();

     fido.WagTail();

     std::cout << "Fido is " << fido.GetAge() << " years old\n";
     std::cout << "and is a " << fido.GetBreed() << " breed\n";

     return 0;

 }

⌨️ 快捷键说明

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