今天會說明到static成員、friend函式、類別、繼承所有概念且跟生活中的例子做結合比較好理解
## static成員
## friend函式/friend類別
實作練習:
#include <iostream>
using namespace std;
// 基底類別 Vehicle (車輛)
class Vehicle {
public:
string brand;
int year;
Vehicle(string b, int y) : brand(b), year(y) {}
// 顯示車輛基本資訊
void display() {
cout << "車輛品牌: " << brand << ", 製造年份: " << year << endl;
}
};
// 子類別 Sedan 繼承自 Vehicle
class Sedan : public Vehicle {
public:
int numDoors;
// 使用父類別的建構子,並初始化子類別的成員變數
Sedan(string b, int y, int d) : Vehicle(b, y), numDoors(d) {}
// 顯示 Sedan 的詳細資訊
void display() {
Vehicle::display(); // 呼叫父類別的 display 方法
cout << "車門數: " << numDoors << endl;
}
// Sedan 專屬的功能
void sedanFeature() {
cout << brand << " 這台轎車的專屬功能是: 配有高級皮椅" << endl;
}
};
// 子類別 SUV 繼承自 Vehicle
class SUV : public Vehicle {
public:
bool hasFourWheelDrive;
// 使用父類別的建構子,並初始化子類別的成員變數
SUV(string b, int y, bool fwd) : Vehicle(b, y), hasFourWheelDrive(fwd) {}
// 顯示 SUV 的詳細資訊
void display() {
Vehicle::display(); // 呼叫父類別的 display 方法
cout << "是否有四輪驅動: " << (hasFourWheelDrive ? "是" : "否") << endl;
}
// SUV 專屬的功能
void suvFeature() {
cout << brand << " 這台 SUV 的專屬功能是: 配有越野模式" << endl;
}
};
// 主函數
int main() {
Sedan mySedan("Toyota", 2020, 4);
SUV mySUV("Jeep", 2022, true);
cout << "轎車的資訊:" << endl;
mySedan.display(); // 顯示 Sedan 的資訊
mySedan.sedanFeature(); // 呼叫轎車專屬功能
cout << "\nSUV 的資訊:" << endl;
mySUV.display(); // 顯示 SUV 的資訊
mySUV.suvFeature(); // 呼叫 SUV 專屬功能
return 0;
}
此題使用物件導向程式設計的功能(如繼承和多態性)來管理不同類型的車輛資訊,並提供相應的功能。
!!今天的內容是跟著第一次學C++就上手第二版第14章後半段一起跟著做學習的!!