C++面向对象之多态

本文探讨了C++中的多态性,包括静态和动态多态,重点介绍了虚函数在实现多态中的作用。多态允许通过基类引用或指针调用不同派生类的相应函数版本。纯虚函数使得类成为抽象类,不能实例化。同时,避免虚函数的误用和构造函数、析构函数的虚特性也得到了强调。
摘要由CSDN通过智能技术生成

对象的类型:


多态:


在C++语言中,基类将类型相关的函数与派生类不做改变直接继承的函数区分对待,对于某些函数,基类希望它的派生类各自定义适合自身的版本,此时基类就将这些函数声明成虚函数。

C++的多态性:

       面向对象(OOP)的核心思想是多态性(polymorphism)。多态这个词源于希腊语,含义为“多种形式”,我们把 具有继承关系的多个类型成为多态类型。因为我们能使用这些类型的“多种形式”而无需在意它们的差异。引用或指针的静态类型与动态类型不同这一事实正是C++语言支持多态性的根本所在。当我们使用基类的引用或指针调用基类中定义的一个函数时,我们并不知道该函数真正作用的对象是什么类型,因为它可能是一个基类的对象也有可能是一个派生类的对象。如果该函数是虚函数,则直到运行时才会决定到底执行哪个版本,判定的依据是引用或指针所绑定的对象的真实类型。

       另一方面,对非虚函数的调用是在编译时进行绑定。类似的,通过对象进行的函数调用也在编译时绑定。对象的类型是确定不变的,我们无论如何都不可能令对象的动态类型与静态类型不一致,因此,通过对象进行的函数调用将在编译时绑定到该对象所属类的函数版本上。


1.静态多态

静态链编或早绑定:编译器在编译期间完成的,编译器根据函数实参的类型(可能会进行隐式类型转换&#x

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值