C++ Primer Plus学习笔记之预备知识

前言

个人觉得学习编程最有效的方法是阅读专业的书籍,通过阅读专业书籍可以构建更加系统化的知识体系。
一直以来都很想深入学习一下C++,将其作为自己的主力开发语言。现在为了完成自己这一直以来的心愿,准备认真学习《C++ Primer Plus》。
为了提高学习效率,在学习的过程中将通过发布学习笔记的方式,持续记录自己学习C++的过程。

一、C++简介

C++的强大来自于“四继承两添加”:

  • “四继承”是指C++继承了C语言“高效”、“简洁”、“快速”、“可移植”的四大特性
  • “两添加”是指在C++在C语言的基础上添加了“面向对象编程(OOP)”、“泛型编程”两大支持
    C++融合了3中不同的编程方式:
  • C语言代表的过程性语言
  • C++在C语言基础上添加的类代表的面相对象语言
  • C++模板支持的泛型(独立于类型)编程

提示:学习C++时需要掌握C语言的知识(《C++ Primer Plus》会讲C语言基础知识)

二、C++简史

同C语言一样,C++也是在贝尔实验室诞生的,Bjarne Stroustrup于20世纪80年代设计并实现了C++。
Stroustrup加入了OOP特性和对C的泛型编程支持,但没有对C的组件作很大改动。因此C++是C语言的超集,这意味着任何有效的C程序都是有效的C++程序。C++的名称来自于C语言中的递增运算符++,这也表明C++是C的扩充版本。
计算机语言要处理两个概念——数据和算法。其中数据是程序使用和处理的信息,而算法是程序使用的方法。C语言作为过程性语言,强调的是编程的算法方面,C++语言因其面向对象的特性,强调的是数据。
OOP编程并不仅仅是将数据和方法合并为类定义。例如:

  • 可以方便地重用和修改现有的、经过仔细测试的代码(这也是C++的优点之一)
  • 信息隐藏保护数据
  • 多态可以实现在不同的编程上下文,拥有不同的运算符和函数定义
  • 继承让您能够使用旧类派生出新类
    泛型编程与OOP目标一致:使重用代码和抽象通用概念的技术更简单。
    OOP与泛型的不同:
  • OOP强调的是编程的数据方面,而泛型编程强调的是独立于特定数据类型。
  • OOP是一个管理大型项目的工具,而泛型编程提供了执行常见任务(如对数据排序和合并链表)的工具。

三、C++标准

  • 1990年,美国国家标准局(American National Standards Insitute,ANSI)成立了“ANSI X3J16”委员会,专门负责制定 C++标准(ANSI制定了C语言标准)。
  • 1991年, 国际标准化组织(ISO)成立“ISO-WG-21”委员会(C 标准小组被称为“WG14”)同ANSI成立联合组织ANSI/ISO,共同致力于C++标准工作。
  • 1998 年,获得ISO、IEC、ANSI批准的第一个国际标准ISO/IEC 14882:1998出台。该标准常被称为C++98,它不仅描述了已有的C++特性,还对该语言进行了扩展,添加了异常、运行阶段类型识别(RTTI)、模板和标准模板库(STL)。
  • 2003年,发布了C++标准第二版(ISO/IEC 14882:2003),简称ISO C++03标准,由于C++03没有改变语言特性,因此我们使用C++98表示C++98/C++2003。
  • 2011年,发布了C++标准第三版(ISO/IEC 14882:2011),简称ISO C++ 11标准,与C++98一样,C++11也新增了众多特性。

四、程序创建的技巧

编写的C++程序运行步骤:

  1. 源代码。使用文本编辑器编写程序,并将其保存到文件中,这就是程序的源代码。
  2. 源代码=》编译器=》目标代码。通过编译器将源代码翻译为主机使用的内部语言——机器语言。包含了翻译后的程序文件就是程序的目标代码(object code)。
  3. 目标代码、启动代码和库代码=》链接程序=》可执行代码。将目标代码与其他代码链接起来。链接指的是将目标代码同使用的函数的目标代码以及一些标准的启动代码(startup code)组合起来,生成程序的运行阶段版本。包含该最终产品的文件被称为可执行代码。

创建源代码文件,可以通过集成开发环境(integrated development enviroments,IDE)或者任何文本编辑器。给源文件命名时,需要使用正确的后缀,将文件标识为C++文件。例如:test.cpp,其中test是文件名,.是句点,cpp是扩展名。
C++源文件的扩展名如下表:

C++实现 源代码文件的扩展名
UNIX C、cc、cxx、c
GUN C++ C、cc、cxx、cpp、c++
Digital Mars cxx、cpp
Borland C++ cpp
Watcom cpp
Visual Studio C++ cc、cxx、cpp
Freestyle CodeWarrior cc、cxx、cpp、c++、cp

C++源代码通过不同编译器生成不同平台的可执行文件。Linux和Windows常见的编译器是g++。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,287评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,346评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,277评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,132评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,147评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,106评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,019评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,862评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,301评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,521评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,682评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,405评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,996评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,651评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,803评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,674评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,563评论 2 352

推荐阅读更多精彩内容