多态性允许派生类具有不同行为,同时共享相同的接口,实现此目的的步骤包括:创建基类、派生类、虚函数和使用基类指针,示例代码展示了如何使用形状类层次结构(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 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++类设计中如何实现多态性?的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1453331.html
微信扫一扫
支付宝扫一扫