C++三大特性


前言

C++三大特性—封装、继承、多态。
封装目的是实现代码模块化。
继承目的是实现代码扩展。
多态目的是分为静态多态和动态多态。静态多态:函数重载和泛型编程。动态多态:虚函数重写。

一、封装

封装就是将数据和行为(或功能)有机结合起来,形成一个整体。把数据和处理数据的操作结合形成类,数据和函数都是类的成员。增强安全性和简化编程。对外隐藏实现细节暴露公共接口。外部通过接口来调用。
封装类的访问类型:
私有成员(private),只有此类的成员函数才能访问。
保护成员(protected),类和派生类的成员函数都能访问,但类外不阔以访问。
公有成员(public),可以在类外访问。

特点:隔离变化,提高复用性,提高安全性。
缺点:封装太多,影响运行效率。使用者不知道代码的具体实现。

二、继承

继承就是A类被B类继承,A类为父类,B类为子类。B类继承Al类的所有公共和保护成员数据(属性)和成员函数(方法)。子类可以重新定义父类某些属性,重写父类的某些方法,即覆盖父类的某些属性和方法。使其获得与父类不同的功能。

优点:1、减少重复代码,增加复用性。
2、让类与类之间产生关系,是多态的前提。
3、增加了类与类之间的耦合性。
缺点:1、继承在编译时刻就定义了,无法时刻改变父类的继承实现。
2、父类至少定义了子类的部分行为,父类改变可能影响子类的行为。
3、如果继承下来的子类不适合解决新问题,必须重写或替换父类,这种依赖关系限制了灵活性。

三、多态

多态:一个接口多种实现状态。多态的出现大大提高了程序的扩展性。
动态多态,是基于封装和继承的来实现的,多个子类对继承于一个父类的虚函数进行重写,来实现不同状态。
静态多态分两种,一种在同一个作用域对函数进行重载(函数名相同,函数参数列表不同),另一种是对函数进行模板化,忽略数据类型强调数据操作。

多态的体现:
父类引用或指针指向子类对象。
父类的引用或指针可以接受子类对象。

多态的前提:
必须存在父类与子类的继承关系。
父类中必须有虚函数。
子类必须重写父类的虚函数。
父类引用或指针指向子类对象。

多态的弊端:
易读性不好,调试困难。
模板只能定义在.h文件中,当工程大了后编译耗时。

  • 6
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
面试中与C++三大特性相关的问题通常指的是封装、继承和多态。封装是将数据和操作封装在一个类中,通过访问权限控制来保护数据,实现了数据的隐藏和封装。继承是一种面向对象编程的关键特性,允许一个类继承另一个类的属性和方法。多态是指同一操作作用于不同的对象,可以有不同的行为。下面我将分别讨论这三个特性。 封装是C++的一个重要特性,它通过将数据和操作封装在一个类中,提供了数据的隐藏和封装。通过访问权限控制,我们可以将一些私有数据隐藏起来,只允许通过类的公有接口进行访问。这样可以保护数据的完整性和安全性,同时也提供了更好的代码组织和维护。 继承是C++中的另一个重要特性,它允许一个类继承另一个类的属性和方法。通过继承,派生类可以获得基类的成员变量和成员函数,并且可以通过重写和扩展基类的方法来实现自己的功能。继承提供了代码复用和层次化设计的能力,同时也允许多态的实现。 多态是C++面向对象编程中的一个关键特性,它可以让同一个操作作用于不同的对象,产生不同的行为。多态通过虚函数实现,通过将函数声明为虚函数,派生类可以重写基类的方法,并通过基类的指针或引用调用派生类的方法。这样就可以根据对象的实际类型来决定调用哪个方法,实现了运行时的动态绑定。 综上所述,封装、继承和多态是C++面向对象编程中的三大特性。封装提供了数据的隐藏和封装,继承提供了代码复用和层次化设计的能力,多态实现了同一操作作用于不同对象的不同行为。这些特性在C++中广泛应用,是面试中常见的考点。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值