Bootstrap

C++ primer plus 第一节 步入C++

目录

一  C++的难度

二  C++于泛型编程

 三  程序创建的技巧

四  面向过程与面向对象

 五  C++添加类和对象

六  思维导图


本节内容
    ·过程性编程和面向对象编程
    ·c++是如何在 C语言的基础上添加面向对象概念的
    ·c++是如何在 C语言的基础上添加泛型编程概念的
    ·编程语言标准
    ·c++的难度

一  C++的难度

C++98标准新增大量特性,页数将近800页
C++11标准在C++98进行大量的补充,页数将近1350页
可见标准不断地在增加,页数到达了1350页,可见C++复杂和难度高
可谓是好语言,难度高

二  C++于泛型编程

泛型编程 (generic programming) 是 C++支持的另一种编程模式
泛型编程又是什么呢?
在我们学习C的时候,以排序为例子,这个排序需要传入特定的类型的数据,但是泛型编程不一样,它可以传入任意数据类型,这样就可以大大减少代码的陈杂,也可以提高效率

- 代码复用:通过泛型,可以编写通用的代码,适用于多种类型。例如,一个排序算法可以对任意类型的数组进行排序,而不需要为每种类型编写单独的代码


- 类型安全:泛型提供了编译时的类型检查,减少了运行时的类型错误。例如,在泛型集合中,编译器会确保集合中的所有元素都是同一类型


- 减少代码冗余:避免了为每种类型编写重复的逻辑,使代码更加简洁

 三  程序创建的技巧

**源代码与目标代码**
这里源代码到目标代码有好几个步骤
1  源代码.cpp     2  预处理.i     3  编译.s     4  汇编.obj
最后得到的.obj文件就是我们要的目标代码

启动代码与库代码     将在第二节  基于hello world的学习  讲解
启动代码就是计算机与操作系统之间的桥梁,这个后面会详细讲到,计算机从操作系统找到启动代码,然后再进入main函数,这就是main函数为什么还有avg这些形参的原因
c++注重数据的处理     c注重算法方面

四  面向过程与面向对象

 C语言就是典型的面向过程的语言
C++是面向对象的语言


我们以一个简单的例子来讲述这个东西
我们在编写一个象棋的程序的时候
C语言实现:开始游戏--黑棋先下--判断胜利--白棋下--判断胜利--...--判断胜利--结束比赛
C++实现:类1:开始界面     类2:黑棋玩家     类3:白棋玩家   类4:胜利界面    类5:结算界面
我们可以看出这个C语言的可修改性相比较C语言较低,因为就类似于一个蛋炒饭,很难把鸡蛋挑出来,C++的可修改性较高,就类似于一碗荷包蛋饭,你不吃鸡蛋可以很好的挑出来

 五  C++添加类和对象

类包括数据(属性)和函数(方法)
如果开发一个可以绘制矩形的计算机
属性:长宽高,颜色,大小,形状...
方法:调整大小,调整颜色...
这个其实就是一个类,里面包括了方法和属性,你也可以类似于C的结构体里面加上了函数,里面的变量就是属性,里面的函数就是方法
类其实就是将方法和属性集合在一起的东西,对象是类实例化的东西

六  思维导图

 

;