C++ Primer Plus笔记 第一章 ~第六章(立贴,陆续更新)

1、C++的三大法宝

  • 继承了C的面向过程特性
  • C++面向对象编程
  • C++模板的泛型编程

 (C和C++的发展历史作者在此就不再过多追叙,读者可以自行去网上阅读搜索)

C++的面向过程编程

        C所遵循的旧的理念,一般来说,计算机语言要处理两个概念——数据和算法。数据是程序使用和处理的信息,而算法是程序使用的方法。面向过程强调的是编程的算法方面。从慨念上说,过程化编程首先确定计算机应采取的操作,然后使用编程语言来实现这些操作。程序命令计算机按一系列流程生成特定的结果,就像菜谱指定了厨师做蛋糕时应遵循的一系列步骤一样。

        早期的程序语言 (如FORTRAN 和BASIC)都会遇到组织方面的问题。例如,程序经常使用分支语句,根据某种测试的结果,执行一组或另一组指令。很多旧式程序的执行路径很混乱(被称为“意大利面条式编程”,儿乎不可能通过阅谈程序来理解它。结构化编程方法便应运而生。如大家熟悉的(for 循环语句,do while ,if else)就是结构化编程。

        另一个原则则是自顶向下原则。其理念就是好比你要搬家,你不可能一下子把家搬完,你可以把它分成各个小任务,比如先搬客厅,再厨房,最后卧室。同样,当你搬客厅时,你又可以分成更小的任务,比如先搬茶几,再电视,再空调。形成一个自己的小人物序列,按照计划从头到脚执行就是自顶向下。C语言鼓励程序员开发程序单元(函数)来表示各个任务模块。

C++的面向对象OOP编程

        简单些理解,就是将数据和方法相结合以创造出可重用的代码,进而减少大量不必要的重复工作。同时,可以调用市面上一些厂商给提前创建好的类库进行开发。这也正是C++的优点:可以方便地重用和修改现有的、经过仔细测试的代码。

泛型编程(genericprogamming)

        是C++支撑的另一种编程模式。它与OOP的目标相同,即使重用代码和抽象通用概念的技术更简单。不过OOP强调的是编程的数据方面,而泛型编程强调的是独立于特定数据类型。它们的侧重点不间。OOP 是一个管理大型项目的工具。而泛型编程提供了执行常见任务(如对数据排序或合并链表)的工具。

C++的数据表示

        有多种类型-—整数、小数、字符、字符串、用户定义的、由多种类型维成的复合结构。例如,要对不同类型的数据进行排序,通常必须为每种类型创建一个排序函数。泛型编程需要对语言进行护展,以便可以只编写一个泛型(即不是特定类型的)函数,并将其用于各种实际类型。C++模板提供了完成这种任务的桃制。

        众所周知,C++有很多特性,比如目前的C++11,C++17等,其实就是ISO标准委员会,为了很好的迎合C++语言程序的可靠性,所统一规定的语言标准,就好比比赛的规则,他在发展,自然也就在更新。

2、编程步骤

        如上图所示,编程的从编写源代码的开始,到最后转换为可执行的代码,才可以被计算机正确的识别与处理。

        提示:有时,编译器在不完全地构建程序后将出现混乱,它显示无法改正的、无意义的错误消息。在这种情况下,可以选择Build All,重新编译整个程序,以清除这些错误消息。遗憾的是,这种情况和那些更常见的情况(即错误消息只是看上去无意义,实际上有意义)很难区分。

3、C++编程

(编程细节就不一点点讲了,因为全总结的话会过于繁琐,这里仅总结一些重要细节要点)

  •  C++区分大小写;
  • 简易大家在编写代码的时候保持良好的代码书写与注释习惯,对未来工作很有帮助,养成习惯;
  • 大部分的程序都需要main()函数,但是也有些特例。比如动态链接库(DLL)模块,因为他不是独立的程序,所以不需要main()函数。还有一些用于专用环境的程序,如机器人控制芯片,也可能不需要main函数。

名称空间支持:

        是C++的一项新特性,可能有很多新手程序员在校就没搞清楚为什么要有这个using namespace std;在此特做出解释。比如你未来你是大厂程序员,你可能就会整合很多不同厂商提供的产品代码。假设两边都有个函数名叫niubi(),但是两个函数里面的代码也不一样,这时候你编译器就不知道该选哪一边的了。这就是名称空间的出现原因。厂商将其产品封装在一个叫做名称空间的单元中,这样就可以用名称空间的名称来指出想使用哪个厂商的产品。然而,多数用户并不喜欢将引入名称空间之前的代码(使用iostream:h 和cout)转换为名称空间代码(使用iostream 和std:cout),除非他们可以不费力地完成这种转换。于是,using编译指令应运而生。上面的代码表明,可以使用std名称空间中定义的名称,而不必使用std前缀。但是同样建议大家不要偷懒,还是减少使用using namespace std;因为等到真处理大型文件多了,可能就会有些潜在的危机。推荐使用using std::cout,用什么对应调用什么。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值