多态性

C++多态性学习心得

一、多态核心思想

多态是面向对象三大核心特性之一,核心是同一个接口,不同实现,依托继承体系实现,让基类指针/引用调用函数时,能根据实际指向的对象类型执行对应版本逻辑,大幅提升代码扩展性。

二、运算符重载:多态的基础表现形式

运算符重载属于编译期多态(静态联编),可以重新定义加减、比较等运算符作用于自定义类对象时的行为,分为成员函数重载、友元函数重载两种写法。重载必须遵循语法规则,不能修改运算符优先级、操作数个数,主要用来让自定义类型运算写法更直观自然,常见于复数、坐标、容器类等场景。

三、虚函数:实现运行期多态的关键

1. 联编区别
静态联编在编译阶段就确定调用哪个函数;虚函数实现动态联编,程序运行时才判断对象真实类型,绑定对应函数。
2. 虚函数用法
在基类中将函数用 virtual 修饰,派生类重写该函数,通过基类指针或引用访问时,会自动调用派生类重写后的版本。
3. 虚析构函数
基类析构函数建议定义为虚函数,避免通过基类指针释放派生类对象时,只执行基类析构、派生类资源泄漏的问题。

四、抽象类与纯虚函数

只声明、无实现体的虚函数就是纯虚函数,包含纯虚函数的类为抽象类。抽象类无法实例化对象,仅用来定义统一接口规范,强制派生类必须完成函数重写,常用于框架顶层设计。我们可以利用抽象类指针数组,统一管理各类派生类对象,批量调用多态接口。

五、学习总结

运算符重载优化编码体验,虚函数实现运行时多态,抽象类规范整体架构。多态把接口和具体实现解耦,新增派生类时无需改动原有调用逻辑,符合开闭原则,是搭建大型面向对象程序的核心基础。

posted @ 2026-06-20 19:19  卢娜1012  阅读(2)  评论(0)    收藏  举报