C++面向对象三大特性

【封装】
封装: 具有相同属性和行为的事物进行抽象形成一个有机整体。将数据以及对数据的操作放在一起形绒一个有机的整体。(类)实例化对象,对象即封装体.

封装的保护机制:封装体将数据以及对数据的操作细节隐藏起来,对外界不可见。对象即一个封装体(黑盒子),外界看不见黑盒子中的数据以及对数据的操作细节。

保护机制实现方法:权限修饰符号
private:私有的,只能在当前类(对象)的函数中访问
protected:保护的,可以在当前类(对象)的函数中访问,可以在派生类的函数中访问
public:公有的,任何地方(当前类,派生类,其他场合)的函数中都能访问。

【继承】
继承:面向对象中功能复用的一种良好机制
两种类:父类型被子类型继承,父类型是子类型的泛化。
子类型派生于父类型。子类型能继承父类型中实现的功能。
分类:
从父类型的个数:
单继承,一个子类型只继承于一个父类型。
多继承,一个子类型同时继承于多个父类型用。
一个父类型可被多个子类型继承。
多继承(父类型是类类型)讨论:多继承是弊大于利,不推荐使用,C++支持,Java、C#都不支持。
从子类型派生于父类型的方式:
-私有继承:子类型把从父类型中的保护段和公有段继承下来的成员放置于自己的私有段。
#保护继承:子类型把从父类型中的保护段和公有段成员继承下来放置于自己的保护段。
+公有继承:子类型把从父类型中的保护段和公有段成员继承下来放置于自己的保护段和公有段。

【多态】
多态:在收到消息时,对象要予以响应。不同的对象收到同一消息可以产生完全不同的结果。

消息机制:对象之间进行交互的一种方式,即函数调用,一个对象调用另外的对象(消息的接收者)的函数。
消息:对象名,方法名,输入,输出,直接对应一个函数调用语句

时段划分:
1.编译时多态(静态多态):对象收到消息后要执行的动作行为在编译时确定。
2.运行时多态(动态多态):对象执行的动作行为运行时确定。
绑定:静态绑定、动态绑定

Cardelli和Wegner划分
通用:
1.参数多态(静态多态):采用参数化模板,给出不同类型的参数,使得一个结构有多种类型。如C++语言中的函数模板和类模板属于参数多态。它的执行速度快,异常少,调用在编译时已确定。参数多态是应用比较广泛的一种多态,被称为最存的多态。

2.包含多态(动态多态):在许多语言中存在,最常见的例子是子类型化。一般需要进行运行时的类型检查,基础是虚函数。
继承:
父类型:可以规定必须要实现的功能,可能没有(不关心)具体的实现。
子类型:要实现父类型中规定的必须实现的功能。
代码角度:父类型的引用(指针)可以指向任何派生类的对象。

特定:
3.强制多态(静态多态):编译程序通过语义操作,把操作对象的类型强行加以变换(隐式和显式),以符合函数或操作符的要求。

4.过载多态(静态多态):同一个名字在不同上下文中代表的含义不同。典型例子是运算符重载和函数重载。

作者:SKYBQL
版权所有,侵权必究
2020/6/26

猜你喜欢

转载自blog.csdn.net/qq_45823731/article/details/106974920