跳转到主内容
websoft网络软件专家 - 深耕网络技术,打造实用软件!

c++中多态是什么意思_介绍C++中多态概念及实现方法

多态指同一接口表现出不同行为,C++通过虚函数、重写和基类指针实现,允许运行时调用对应对象的函数;纯虚函数定义接口,构成抽象类,强制派生类实现,提升程序扩展性与维护性。 多态是C++ 面向对象编程 的三大核心特性之一,另外两个是封装和继承。简单来说, 多态指的是同一接口可以表现出不同的行为 ,也就是说,同一个函数调用可以根据对象的不同而执行不同的实现。 多态的基本概念 在C++中,多态允许基类的指针或引用在运行时指向派生类的对象,并根据实际对象类型调用相应的函数。这种机制让程序具有更好的扩展性和可维护性。 举个例子:有一个基类 Shape ,它有一个虚函数 draw() ,两个派生类 Circle 和 Rectangle 都重写了这个函数。当我们通过基类指针调用 draw() 时,程序会自动调用对应对象的实际版本。 多态的实现方式 C++中的多态主要通过以下机制实现: 立即学习 “ C++免费学习笔记(深入) ”; 虚函数(Virtual Function) :在基类中使用 virtual 关键字声明函数,表示该函数可以在派生类中被重写。 重写(Override) :派生类提供与基类虚函数同名、同参数列表的函数实现。 基类指针或引用 :使用基类类型的指针或引用指向派生类对象,从而实现统一接口调用不同实现。 示例代码: Trae win Trae Windows 官方版本现已全面支持 Win10 和 Win11 系统(64位)。国内开发者可直接访问 Trae 中文官网(trae.cn 或 trae.com.cn),一键下载官方正版 .exe 安装包,享受国内直连的高速稳定体验。安装过程极其简便,双击即可运行,并支持一键无缝导入 VS Code 或 Cursor 的原有主题、快捷键及插件配置。登录支持手机号、微信或稀土掘金账号。内置免费的豆包与 DeepSeek 等顶级大模型,让你开箱即用,轻松开启高效的 AI 智能编程之旅。 下载
#include
using namespace std;

class Shape { public: virtual void draw() { cout << "Drawing a shape" << endl; } };

class Circle : public Shape { public: void draw() override { cout << "Drawing a circle" << endl; } };

class Rectangle : public Shape { public: void draw() override { cout << "Drawing a rectangle" << endl; } };

int main() { Shape s1 = new Circle(); Shape s2 = new Rectangle();

s1->draw(); // 输出: Drawing a circle
s2->draw(); // 输出: Drawing a rectangle

delete s1;
delete s2;
return 0;
} 纯虚函数与抽象类 有时候我们希望基类中的某个函数没有具体实现,只是作为接口存在。这时可以使用 纯虚函数 :
class Shape { public: virtual void draw() = 0; // 纯虚函数 };
包含纯虚函数的类称为 抽象类 ,不能实例化对象。只有当派生类实现了所有纯虚函数后,才能创建该类的对象。这种方式强制派生类提供特定行为,增强了程序的设计约束。 基本上就这些。多态让C++程序更灵活,适合处理具有共性但行为各异的对象集合。掌握虚函数、重写和抽象类的使用,是写出高质量面向对象代码的关键。不复杂但容易忽略细节,比如记得把析构函数设为虚函数,避免资源泄漏。

相关文章