如果说Python给了世界以光,那C++可能是个不错的手电筒。虽然人生苦短,Python一直是个不错的选择,但是C++也有自己不同的哲学和世界观吧,数据产业大热的当下,Python等语言的热度不减,但比较Traditional的我,还是想看看C++的构造。
看书当然是《C++ Primer Plus》啦,为了鼓励自己坚持下去,决定定期写读书笔记吧~
1. C++简介
不得不说,看完第一章有种小时候玩口袋妖怪的怀旧感,开局让你从三个属性中选一个,开始各种升级打怪,C++也不例外(突然想到杰尼龟那个我太难了的表情包,一时间找不到了,假装有图吧):
咳咳。。。题外话。
C++有可选的三个编程方式:
a.过程性编程
b.面向对象编程
c.泛型编程
1.1 过程性编程
对于过程性编程,不得不提到计算机要处理的两个概念:数据和算法。数据是程序使用和处理的信息,算法是程序使用的流程性的方法。过程性编程着眼于算法。对于它,有两个细分概念:
结构化编程(structured programming)
结构化编程将分支限制为一小组行为良好的结构,比如常用的for循环,if else语句等。然后根据程序流程里需要执行的操作,来构思自己的程序。这样的方式避免了早期,程序规模扩大遇到的执行路径混乱的问题(书中称“意大利面条式编程”,这种程序不易读,难修改维护)
自顶向下(top-down)
这个比较好理解了,C语言里也经常有提到。它的理念就是将任务细分为更小的任务,直到这个任务易于编写为止。
1.2 面向对象编程(OOP)
Q1:面向对象强调的是数据,强调语言要满足问题要求,怎么满足呢?
它采用自下向上的编程(bottom-up),流程:
而对于类和对象的关系如下,类是一种规范,类实例化之后就是对象,比如“有着Traditional Style的一类人”是类,我是其中之一,那么我就是一个实例化的对象:
Q2:为什么要这么做,这么做有什么好处吗?
Answer: 首先,最明显的好处是它把重点放在表示概念上,而不是任务上,使得程序更加易读和可靠。
其次,有助于创建可重用的代码,减少了大量的工作。
再者,信息隐藏可以保护数据,避免不适当的访问,
多态能为运算符和函数创建多个定义
继承能够使旧类派生出新类。
1.3 泛型编程(generic programming)
泛型编程强调的是创建出独立于类型的代码,举个栗子,我是个开心的小胖子,那么我要减肥,我要长高高,于是,我天天量身高,称体重,用整型记录每天的卡路里(这个,,为了使我的摄入量看的少一些,我取整一下吧hhhhhh),用double型记录体重和身高,我想给我的摄入卡路里量排个序,也想对体重和身高这样做,那写两个函数多麻烦啊,整型和double不能一起排序吗,啊啊啊啊又懒又胖的我觉得麻烦死了,于是,我就得用泛型编程了,于是呢,我写了一个函数就解决了通用的排序问题,当然,通用指的是类型通用。
2. C++的可移植性和标准
这个的话我就直接上个图吧,不解释了,彪悍的人生不需要解释。。。
3.C++程序创建流程
第一章写完笔记了,主要给自己复习看吧,第一次写博,有点乱七八糟的排版,下趟好好改进一下。
最近有点忙,两周一更或者一周一更都是有的吧。水平不够纯rookie,希望大佬们多给意见吧。