C++ Primer Plus 第1章

前言

本书内容介绍:
第一章:C和C++背景
第二章:C++入门
第三章:数据类型
第四章:复合类型及内存分配
第五章:循环
第六章:分支(及字符,文件)
第七章:函数
第八章:C++专用函数辅助工具
第九章:内存分配管理和名空间
第十章:对象和类
第十一章:类使用深入
第十二章:(逐渐看不懂简介)类和动态内存分配
第十三章:类继承
第十四章:代码重用
第十五章:(杂)友元、异常等
第十六章 :string类和标准模板库
第十七章:输入输出和文件
第十八章:C++11
这本书的知识学习思路和C语言的学习思路大致相同,只是由于C++引入了面向对象编程和泛型编程的新思想,所以增添了一些知识点的讲解,但是整体的思路并没有太大改变

第一章 预备知识

历史线
20世纪60年代:大型机,体积大,内存小---->20世纪70年代:以C和Pascal语言为代表的结构化编程时代,C高级语言可提供结构化编程工具,并提供硬件处理能力----->20世纪80年代:面向对象编程(OOP:Object Oriented Programming)崭露头角
c语言
在UNIX操作系统出现之前,人们利用汇编语言来直接操纵硬件,但是由于汇编语言可移植性差,要将汇编程序移植到不同计算机上,需要重新编写程序,20世纪70年代早期,贝尔实验室的Dennis Ritchie(丹尼斯,里奇)为了开发UNIX操作系统(可以跨平台,高级语言代码不需要改变,只需要各平台安装对应的编译器,将高级语言编译为机器语言),他需要这样一种简洁,可以有效控制硬件的高级语言–C语言,于是C语言应运而生
c语言编程原理
发展线:过程性编程—>结构化编程+自顶向下的设计
我个人的理解就是:这一种转变并没有改变核心思想,即:如何把大象放进冰箱的过程性思想,结构化编程只是在过程性编程思想的基础上引入了一个强大的工具—函数,函数将一个个步骤包装起来,提高了程序的可读性,便于维护,使得人们可以使用C语言编写并维护大规模的程序

面向对象编程
思想核心:过程性编程是试图使问题满足语言的过程性方法,而OPP是试图让语言来满足问题的要求,其理念是设计与问题的本质特性相对应的数据格式
C++中,类是一种规范,对象是这种规范的实例,类规定了它的对象可以有那些变量,可以对这些变量进行哪些操作,比如公司职位是一个类,这个类规定了职员姓名,职员工资等变量,规定了给职员加工资,给职员升职位等操作,而程序猿:职员姓名:我本人, 职员工资:10000000000津巴布韦,就是一个类实例化之后的对象,而让我本人加薪,就是对这个对象的一个操作
OOP的编程思想是自下而上的编程,即从低级组织(如类)到高级组织(如程序)的编程,OPP编程的重点不是放在任务上,而是放在表示概念上,如果做过C语言成绩管理系统大作业,使用结构体实现,可以理解这一说法

c++和泛型编程
泛型编程和OOP的目标相同,即让重用代码和抽象通用概念的技术更简单。不过OOP强调的是编程的数据方面,而泛型编程强调的是独立于特定的数据类型
比如说,你要定义一个求和函数,你想在程序中实现整型数组,字符型数字,自定义的比较复杂的结构体数组的求和,那么利用泛型编程你可以只用一个函数(并且定义加法)就实现你的需求,,着重理解“独立于特定的数据类型”。

c++的起源
Bjarne Stroustrup(本贾尼 斯特劳斯特鲁普) 想要创造更加实用的高级编程语言,于是他在C语言的基础上创造了C++(++是C语言中的递增运算符,C++表示是C语言的扩充版本)
这意味着,所有有效的C程序,大多数情况下可以不加修改的在C++编译环境下正确运行

可移植性和标准
可移植性有两方面的障碍,一是硬件特定的程序是不可移植的,所以要将以来硬件的代码写在函数中,只修改函数就可以,二是代码标准的统一,在ANSI,ISO等组织的努力下,现一出台相应的代码标准C++98,C++03,C++11等标准

程序的创建
由于我日常都是使用IDE来创建程序,非常无脑但方便,这里仅介绍一下C++程序的真实创建过程
1.源代码:使用文本编辑器编写程序,并将其保存到文件中,这个文件就是程序的源代码
2.目标代码:编译器编译源代码,翻译为机器语言,包含了翻译后的程序的文件就是程序的目标代码
3.可执行代码:将目标代码与使用的函数的目标代码以及标准的启动代码等链接起来,就是可执行代码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值