#C++ Primer Plus# 第一章 预备知识

1.1 简介

C++ 融合了3中不同的编程方式:

  • C语言代表的过程性语言
  • 类代表的面向对象语言
  • C++模板代表的泛型编程

1.2 简史

1.2.2 C语言

时间 地点 人物 目的
20世纪70年代早期 贝尔实验室 Dennis Ritchie(丹尼斯·里奇 ) 开发一种将低级语言的效率、硬件访问能力和高级语言的通用性、可移植性融合一起的语言用于开发UNIX操作系统

1.2.2 C语言编程原理

  1. 程序=数据+算法
  2. 过程性语言强调编程的算法方面
  3. 结构化编程(structured programming)解决语句组织混乱的问题,C中使用for循环、while循环、do while循环和if else语句
  4. 自顶向下(top-down)的设计,大任务分解成小任务

1.2.3 面向对象编程

  1. OOP强调的是数据,理念是设计与问题的本质特性相对应的数据结构(即类)
  2. OOP程序设计方法首先设计类,这种从低级组织(如类)到高级组织(如程序)的处理过程就是自下向上(bottom-up)的编程
  3. OOP的其他新理念:信息隐藏、多态、继承

1.2.4 C++和泛型编程

  1. 泛型编程(generic programming)强调独立于特定的数据类型
  2. 只编写一个泛型函数,并将其用于各种数据类型
  3. C++ 模板提供了这种机制

1.2.5 C++ 的起源

时间 地点 人物 目的
20世纪80年代 贝尔实验室 Bjarne Stroustrup(比雅尼·斯特劳斯特鲁普) “更方便地编写出好程序,让每个程序员更加快乐”
  1. C++ 是C语言的超集,任何有效的C程序都是有效的C++程序
  2. 名称C++来自C语言中的递增运算符++,这表明它是C的扩充版本
  3. OOP部分赋予C++将问题涉及的概念联系起来的实力,C部分则赋予C++紧密联系硬件的能力
  4. 在C++获得一定程度成功后,Stroustrup才添加了模板,使得泛型编程成为可能

1.3 可移植性和标准

可移植性存在两个障碍:

障碍 解决方案
硬件差异 将依赖于硬件的部分放到函数模块中,最大限度地降低可移植性问题
语言差异 制定C++语言标准,ANSI/ISO联合组织

C++国际标准之路:

标准 发布时间 特性
C++98 1998 描述C++已有特性;添加了异常、RTTI和STL
C++03 2003 修订错误、减少多义性
C++11 2011 消除不一致性;加入了大部分的C++ Technical Report 1程序库(数学上的特殊函数除外)
C++14 2014 支持普通函数的返回类型推演,泛型 lambda,扩展的 lambda 捕获,对 constexpr 函数限制的修订,constexpr变量模板化

1.4 程序创建的技巧

编程步骤

1.4.1 创建源代码文件

扩展名是后缀由一个句点和一个或多个字符组成,使用什么扩展名取决于C++实现。

C++****实现 源文件扩展名
UNIX C(C ++程序使用C,部分支持cc、cxx)、c(C程序使用c)
GNU C++ C、cc、cpp、cxx、c++
Microsoft Visual C++ cpp、cxx、cc

1.4.2 编译和链接

发展历程:

  1. 使用一个C++到C的编译器程序(即cfront)
  2. 开发直接的C++到目标代码的编译器
C++实现 编译和链接方法
UNIX CC spiffy.C //编译 <br /> CC my.C spiffy.o -lm //链接之前输出的目标代码,-lm表示链接数学库中的函数 <br /> a.out //执行
GNU C++ g++ spiffy.cxx //编译 <br /> g++ my.cxx spiffy.o -lg++ //链接之前输出的目标代码,-lg++表示链接C++库<br /> a.out //执行
Microsoft Visual C++ Compile:编译<br /> Build和Make:编译项目中所有源代码文件的代码,只重新编译该文件 <br /> Build All:重新编译所有的源代码文件<br /> Link:将编译后的源代码与所需的库代码组合起来 <br /> Run或Execute:运行程序 <br /> Debug:以步进的方式执行程序
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,761评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,953评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,998评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,248评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,130评论 4 356
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,145评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,550评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,236评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,510评论 1 291
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,601评论 2 310
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,376评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,247评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,613评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,911评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,191评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,532评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,739评论 2 335

推荐阅读更多精彩内容