C++快速入門---this指標和類的繼承(10)
阿新 • • 發佈:2018-11-04
C++快速入門---this指標和類的繼承(10)
this是一個特殊的指標
class Human {
char fishc;
Human(char fishc);
}
Human::Human(char fishc){
fishc = fishc;
}
"fishc = fishc",怎樣才能讓構造器知道哪個是引數,哪個是屬性呢?
用到它了 - this指標(指向當前的類生成的物件)
this->fishc = fishc
現在編譯器就懂了,賦值操作符的左邊將被解釋為當前物件的fishc屬性,右邊將被編譯器解釋為構造器的傳入來的fishc引數。
繼承
假設我們有一隻烏龜和一隻豬,它們都有一些共同特徵:例如都有嘴巴會吃東西,都睡覺,都會流口水。它們有不同的地方:例如烏龜會游泳,豬會爬樹。
基類是可以派生出其他的類,也稱為父類或超類。比如這裡的Animal是基類。
子類是從基類派生出來的類,比如這裡的Trutle類和Pig類是子類,
繼承的語法:
class SubClass : public SuperClass {...}
程式碼如下:
#include <iostream> #include <string> class Animal//基本 { public: std::string mouth;//嘴巴 void eat(); void sleep(); void drool();//流口水 }; //Pig繼承於Animal class Pig : public Animal { public: void climb();//上樹 }; class Turtle : public Animal { public: void swim(); }; void Animal::eat() { std::cout << "I'm eatting!" << std::endl; } void Animal::sleep() { std::cout << "I'm sleeping!Don't disturb me!" << std::endl; } void Animal::drool() { std::cout << "我是公的,看到母的我會流口水,我正在流口水。。。" << std::endl; } void Pig::climb() { std::cout << "我是一隻漂亮的小母豬豬,我會上樹,我正在爬樹。。噓。。" << std::endl; } void Turtle::swim() { std::cout << "我是一隻小甲魚,當母豬想抓我的時候,我就游到海里。。哈哈。。" << std::endl; } int main() { Pig pig; Turtle turtle; pig.eat(); turtle.eat(); pig.climb(); turtle.swim(); return 0; }