C++学习 2019-1-8

本文深入探讨了面向对象编程的核心概念,包括类、对象、继承、封装、多态及设计原则,如单一职责、开闭原则等。同时,介绍了设计模式如单例模式,并解析了容器、迭代器、算法间的关系。

1. 什么是面向对象

程序里进行了类的封装,所有操作都是通过对象调用其自身的成员函数完成的。

2.面向对象的基础

其实就是三个要素: 对象继承

3.面向对象的三大特点

封装继承多态 (多态是通过用父类的指针去调用实际的子类对象)。

4.类之间的关系

横向关系: 依赖关联组合聚合
纵向关系: 继承 (泛化)

5.设计原则:(一共有7条)

5.1 单一职责原则(Simple Responsibility Principle,SRP):类的职责要单一,不能将太多的职责放到一个类中。

5.2 开闭原则(Open Close Principle,OCP):软件实体对扩展是开放的,对修改是关闭的,即在不修改软件实体的基础上去对功能进行扩展。

5.3 里氏代换原则(Liskov Substitution Principle,LSP):一个可以接受基类对象的地方必然可以接受继承于该基类的子类。

5.4 依赖倒转原则(Dependency Inversion Principle,DIP):要针对抽象层来编程,不要针对具体的东西进行编程(我们编写的程序需要能够进行多次复用和扩展)。

5.5 接口隔离原则(Interface Segregation Principle,ISP):使用多个专门的接口来取代一个统一的接口。

5.6 合成复用原则(CRP):尽量多地使用组合、聚合、关联等类间关系,而尽可能少地使用继承。

5.7 迪米特法则(Law of Demeter,LoD):一个软件实体对其他实体的引用越少越好。

6.设计模式(一共3种)

6.1 单例

6.2 模版方法

6.3 迭代器模式

7.容器、迭代器、算法之间的关系

一个数组进行遍历需要进行“++”操作,一个链表进行遍历需要进行指向其下一个节点,一个树形结构需要有两个指针分别指向左右节点。那么当我们针对一个问题想用这三种结构进行时需要将算法写三份。为了减少代码量,我们考虑:上述所要达到的目的是相同的,不同的只是其数据类型不同,因此我们可以通过使用迭代器来将上述遍历方法都变为“++”操作。

8.this指针

this指针是用来区分不同对象的,对于静态成员函数,其函数中没有this指针,因此可以直接调用,而不必须先创建对象再进行调用。

9.const成员方法只能使用成员属性,而不能对成员属性进行修改;const对象只能调用const成员属性。

10.static成员函数(即静态成员函数)没有this指针,因此可以直接调用该方法。

11.动态创建对象

在程序运行时,根据不同时刻不同的需求来动态地创建对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值