在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() 函数计算面积。