在C++中,Class定義了一件物件的特點,類別的定義包括了
我們之前學過的資料結構可以包含一系列的數值,Class 更進一步。
你可以想象Class 為物件的設計模板,我們可以在這裏創造物件的屬性,例如説我們如果要設計一部汽車,那麽當中會有汽車的廠牌,車名以及馬力等等。也會有函數去獲得汽車資訊。
class Car{
string brand;
int horsePower;
public:
Car(string brands= "Toyota", int horsePowers = 0){
brand = brands;
horsePower = horsePowers;
}
string getInformation(){
cout << "品牌: " << brand << " 馬力: " << horsePower <<endl;
}
};
物件就是類別的實例,我們可以利用汽車藍圖產生各種各樣的“車子”,這些車子就是物件了
auto toyota = make_unique<Car>("Toyota",200,"rav4");
rav4 -> getInformation();
make_shared
都可以某種情況下,一個類別會有「子類別」。子類別會獲得所有父類別屬性并且加上自己的屬性
class Car{
protected:
string brand;
string type;
int horsePower;
//...其他代碼
};
class Truck extends Car{
string capacity;
};
可以複寫掉父類別的函數
class Car{
//...其他代碼
string virtual getInformation(){
cout << "品牌: " << brand << " 馬力: " << horsePower << endl;
}
};
class Truck extends Car{
string capacity;
public:
string overide getInformation(){
cout << "品牌: " << brand << " 馬力: " << horsePower << "容量" << capacity << endl;
}
};