c++八股文:c++面向对象

1.c++面向对象三大特性

  • 面向对象:对象是指具体的某一个事物,这些事物的抽象就是类,类中包含数据(成员变量)和动作(成员方法)。
  • 面向对象的三大特性:
    • 封装:将具体的实现过程和数据封装成一个函数,只能通过接口进行访问,降低耦合性。
    • 继承:让某种类型对象获得另⼀个类型对象的属性和⽅法。
    • 多态:多态就是不同继承类的对象,对同一消息做出不同的响应,基类的指针指向或绑定到派生类的对象,使得基类指针呈现不同的表现方式。
      • 实现多态有两种⽅式
        覆盖(override): 是指⼦类重新定义⽗类的虚函数的做法
        重载(overload): 是指允许存在多个同名函数,⽽这些函数的参数表不同(或许参数个数不同,或许参数类型不同,或许两者都不同)

2.c++的三个访问修饰符

public 、 private 和 protected 。
这些修饰符决定了类中的成员对外部代码的可⻅和访问权限
  • public 修饰符⽤于指定类中的成员可以被类的外部代码访问。公有成员可以被类外部的任何代码(包括类的实例)访问。
  • private 修饰符⽤于指定类中的成员只能被类的内部代码访问。私有成员对外部代码是不可⻅的,只有类内部的成员函数可以访问私有成员。
  • protected 修饰符⽤于指定类中的成员可以被类的派⽣类访问。受保护成员对外部代码是不可⻅的,但可以在派⽣类中被访问。

3.多重继承

⼀个类可以从多个基类(⽗类)继承属性和⾏为。
在C++等⽀持多重继承的语⾔中,
⼀个派⽣类可以同时拥有多个基类。

多重继承可能引⼊⼀些问题,如菱形继承问题, ⽐如当⼀个类同时继承了两个拥有相同基类的类,⽽最终的派⽣类⼜同时继承了这两个类时, 可能导致⼆义性和代码设计上的复杂性。为了解决这些问题,C++ 提供了虚继承, 通过在继承声明中使⽤ virtual 关键字,可以避免在派⽣类中⽣成多个基类的实例,从⽽解决了菱形继承带来的⼆义性。


4.重载与重写

  • 重载:重载是指在同⼀作⽤域内,使⽤相同的函数名但具有不同的参数列表或类型,使得同⼀个函数名可以有多个版本。

  • 重写:重写是指派⽣类(⼦类)重新实现(覆盖)基类(⽗类)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值