多态性允许派生类具有不同行为,同时共享相同的接口,实现此目的的步骤包括:创建基类、派生类、虚函数和使用基类指针,示例代码展示了如何使用形状类层次结构(shape、rectangle、circle)实现多态性,计算不同形状的总面积。

实现 C++ 中多态性的类设计
何为多态性?
多态性允许派生类与基类拥有不同的行为,同时共享相同的接口。它提供了一种优雅的方式来创建具有类似行为但具体实现不同的对象集合。
立即学习“C++免费学习笔记(深入)”;
实现多态性的步骤:
实战案例:
考虑一个形状类的层次结构:
class Shape {
public:
virtual double area() = 0; // 纯虚函数(必须在派生类中重新定义)
};
class Rectangle : public Shape {
public:
Rectangle(double width, double height) : width_(width), height_(height) {}
double area() override { return width_ * height_; }
private:
double width_;
double height_;
};
class Circle : public Shape {
public:
Circle(double radius) : radius_(radius) {}
double area() override { return 3.14 * radius_ * radius_; }
private:
double radius_;
};用法:
// 创建不同形状的集合
vector<Shape*> shapes;
shapes.push_back(new Rectangle(2.0, 3.0));
shapes.push_back(new Circle(4.0));
// 使用基类指针计算总面积
double totalArea = 0.0;
for (Shape* shape : shapes) {
totalArea += shape->area(); // 使用多态性动态绑定函数调用
}
// 输出总面积
cout << "Total area: " << totalArea << endl;输出:
Total area: 37.68
以上就是C++类设计中如何实现多态性?的详细内容,更多请关注php中文网其它相关文章!
c++怎么学习?c++怎么入门?c++在哪学?c++怎么学才快?不用担心,这里为大家提供了c++速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号