简单说说面向对象

C++是从C语言发展过来的一种面向对象编程语言,C语言是面向过程的,关注的是过程,通过分析求解问题的步骤并且通过函数调用逐步解决问题。但是问题的规模比较复杂的时候,面向过程的思想不能满足需求,就产生了面向对象的编程思想。

面向对象关注的是对象,将一件事情拆分成不同的对象,靠对象之间的交互解决问题。

面向对象的三大特性:封装、继承、多态

封装就是将数据和操作数据的方法进行有机结合,隐藏对象的属性和实现细节,仅对外公开接口来和对象进行交互。一方面可以保护对象的数据,另一方面使对象成为相对独立的功能模块。

继承是类层次的复用,在保持原有类特性的基础上进行扩展,增加功能,产生新的类称派生类。
继承的方式有公有、保护、私有继承,实际中公有继承用的比较多。

因为C++允许多继承,有时候会出现数据冗余的二义性的问题,所以又有了虚拟继承,它是通过在虚基表里存偏移量实现的。

多态是不同继承关系的类对象,去调用同一函数,产生了不同的行为

构成多态有两个条件:

  1. 必须通过基类的指针或者引用调用虚函数
  2. 派生类必须对基类的虚函数进行了重写

多态是通过虚表实现的
一个含有虚函数的类中都有虚函数表指针,虚函数的地址放在虚函数表中,调用的时候通过this指针找到虚表指针,再到虚表里找到对应的虚函数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

江南无故人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值