C++ 繼承用於建構類別層次結構,新類別(衍生類別)從基底類別繼承功能並擴展其功能。衍生類別使用存取說明符宣告繼承關係,控制對基底類別成員的存取權限。 public 授予衍生類別和外部程式碼存取權限,protected 授予衍生類別及其衍生類別的存取權限,private 只授予衍生類別存取權限。透過建立衍生類別並覆寫基底類別的純虛函數,衍生類別可以實現自訂功能,如範例中 Rectangle 和 Circle 計算特定形狀面積的實作。
繼承是物件導向程式設計中的一項基本概念,它允許從現有的類別建立新的類別。在 C++ 中,繼承可以用於建構類別層次結構,其中每個類別繼承自其基底類別並可能擴展其功能。
為了從基底類別繼承,新的類別(衍生類別)必須使用public
、protected
或private
存取說明符宣告繼承關係。語法如下:
class 派生类 : 访问说明符 基类 { // 派生类成员 };
存取說明符控制衍生類別對基底類別成員的存取權:
:允許衍生類別和外部程式碼存取基底類別成員。
:允許衍生類別及其衍生類別存取基底類別成員。
:只允許衍生類別存取基底類別成員。
class Shape { public: virtual double getArea() const = 0; // 纯虚函数 }; class Rectangle : public Shape { public: Rectangle(double width, double height) : _width(width), _height(height) {} double getArea() const override { return _width * _height; } private: double _width, _height; }; class Circle : public Shape { public: Circle(double radius) : _radius(radius) {} double getArea() const override { return 3.14159 * _radius * _radius; } private: double _radius; };
Shape 是形狀類別的基類,它包含一個純虛函數
getArea(),這意味著必須在所有衍生類別中實作它。
是一個從
Shape 繼承的矩形類,它覆蓋了
getArea() 函數以計算矩形的面積。
是另一個從
Shape 繼承的圓類,它也覆寫了
getArea() 函數以計算圓的面積。
Rectangle 和
Circle 物件並呼叫
getArea() 函數:
int main() { Rectangle rectangle(2.0, 3.0); cout << "Rectangle area: " << rectangle.getArea() << endl; Circle circle(5.0); cout << "Circle area: " << circle.getArea() << endl; return 0; }
Rectangle area: 6 Circle area: 78.5398163397
以上是C++ 中繼承如何用來建構類別層次結構?的詳細內容。更多資訊請關注PHP中文網其他相關文章!