在C++中進行面向對象的設計,主要遵循以下幾個步驟和原則:
以下是一個簡單的C++面向對象設計的示例:
// 定義一個基類 Shape
class Shape {
public:
virtual double area() const = 0; // 純虛函數,表示計算面積
virtual ~Shape() {} // 虛析構函數,確保派生類對象被正確銷毀
};
// 定義一個派生類 Circle,繼承自 Shape
class Circle : public Shape {
private:
double radius;
public:
Circle(double r) : radius(r) {}
double area() const override {
return 3.14159 * radius * radius;
}
};
// 定義一個派生類 Rectangle,繼承自 Shape
class Rectangle : public Shape {
private:
double width;
double height;
public:
Rectangle(double w, double h) : width(w), height(h) {}
double area() const override {
return width * height;
}
};
int main() {
// 使用多態性,將 Shape 類型的指針指向 Circle 和 Rectangle 對象
Shape* shape1 = new Circle(5);
Shape* shape2 = new Rectangle(4, 6);
// 調用 area() 函數,計算面積
cout << "Circle area: " << shape1->area() << endl;
cout << "Rectangle area: " << shape2->area() << endl;
// 釋放內存
delete shape1;
delete shape2;
return 0;
}
在這個示例中,我們定義了一個基類 Shape
和兩個派生類 Circle
和 Rectangle
。基類中包含一個純虛函數 area()
,表示計算面積。派生類中實現了這個函數,以計算各自形狀的面積。在 main()
函數中,我們使用多態性,將 Shape
類型的指針指向 Circle
和 Rectangle
對象,并調用它們的 area()
函數計算面積。