1 of 16

C++

C Plus Plus

1.预备知识

  • C、C++、其他编程语言的历史
  • C++能做什么
  • 如何学习C++
  • 编译、链接、运行
  • 环境配置

精英王子-2012.10.21

CC BY-NC-SA(署名-非商业性使用-以相同方式共享) 3.0

2 of 16

C、C++、其他编程语言的历史

  • 机器码

机器码是这个样子(节选自一个小程序):

4c 01 5b 00 7f 32 81 50 6f 18 00 00 1f 01 00 00 00 00 00 00 2e 64 72 65 63 74 76 65 00 00 00 00 00 00 00 00 8f 00 00 00 4c 0e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0a 10 00 2e 64 65 62 75 67 24 53 00 00 00 00 00 00 00 00 a8 00 00 00 db 0e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40 00 10 42 2e 72 64 61 74 61 00 00 00 00 00 00 00 00 00 00 01 00 00 00 83 0f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40 10 10 40 2e 72 64 61 74 61 00 00 00 00 00 00 00 00 00 00 01 00 00 00 84 0f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40 10 10 40 2e 72 64 61 74 61 00 00 00 00 00 00 00 00 00 00 04 00 00 00 85 0f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40 10 30 40 2e 72 64 61 74 61 00 00 00 00 00 00 00 00 00 00 04 00 00 00 89 0f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40 10 30 40 2e 72 64 61 74 61 00 00 00 00 00 00 00 00 00 00 04 00 00 00 8d 0f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40 10 30 40 2e 72 64 61 74 61 00 00 00 00 00 00 00 00 00 00 04 00 00 00 91 0f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40 10 30 40 2e 72 64 61 74 61 00 00 00 00 00 00 00 00 00 00 04 00 00 00 95 0f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40 10 30 40 2e 72 64 61 74 61 00 00 00 00 00 00 00 00 00 00 04 00 00 10

3 of 16

C、C++、其他编程语言的历史

  • 汇编语言

汇编语言(同样是上面的程序,同样是节选):

.file "main.cpp"�.lcomm __ZStL8__ioinit,1,1� .def ___main; .scl 2; .type 32; .endef� .section .rdata,"dr"�LC0:� .ascii "Hello World!\0"� .text� .globl _main� .def _main; .scl 2; .type 32; .endef�_main:�LFB947:� .cfi_startproc� pushl %ebp� .cfi_def_cfa_offset 8� .cfi_offset 5, -8� movl %esp, %ebp� .cfi_def_cfa_register 5� andl $-16, %esp

4 of 16

C、C++、其他编程语言的历史

  • C语言

C语言(Dennis Ritchie于1970年,同样的程序):

#include <stdio.h>

int main()

{

printf("Hello World!\n");

return 0;

}

5 of 16

C、C++、其他编程语言的历史

  • C++

这是我们要讲的C++(Bjarne Stroustrup于1983):

#include <iostream>

using namespace std;

int main()

{

cout<<"Hello World!"<<endl;

return 0;

}

6 of 16

C、C++、其他编程语言的历史

  • C++的版本
  • C++98

第一个C++标准

  • C++03

目前普遍使用的版本,我们主要讲C++03

  • C++11

最新的C++标准,我会提到一些

7 of 16

C++能做什么——没错,他们都是由C++编写的

8 of 16

C++能做什么

不过基础是必须要打好的,恐怕今后很长一段时间我们需要和“黑窗口”打交道:

但是不要小瞧它,在之后的几节课中,我们可以借助它完成一些非常复杂的数学计算,或者编写有趣的文字游戏.

9 of 16

如何学习

课上:

  • 有问题随时提问
  • 一切以程序为准

课下:

  • 自行练习、阅读资料
  • 欢迎和我组团去图书馆

10 of 16

编译、链接、运行

C++源文件

编译器

编译是一个不可逆的过程

编译

编译本质是一个翻译的过程,把C++代码翻译成机器码。

这是因为人类编写/阅读C++代码更方便,而计算机只认识机器码。

11 of 16

编译、链接、运行

  • 编译器实现
  • Microsoft Visual C++

只支持Windows系统

  • GNU G++

开源、支持多种平台/架构

  • Clang

年轻,小巧,编译速度快,同样开源

12 of 16

环境配置

在今后,我会使用以下软件来演示:

  • Windows

考虑到大家用Windows会习惯一点,不过也会稍微涉及Linux

  • GCC

同时支持Windows和Linux

  • Qt Creator

免费、漂亮的中文UI(用户界面)

IDE(集成开发环境),并非必须的,但是使用它可以很大程度提高工作效率,它会自动为你完成一些机械化的工作.

13 of 16

环境配置

  • 把MinGW-2012.4.26.zip解压到某个目录(记住).
  • 运行qt-win-opensource-4.8.2-mingw.exe,安装到某个目录(记住),中途需要输入GCC的安装目录.
  • 运行qt-creator-win-opensource-2.5.0.exe,安装.
  • 在开始菜单打开Qt Creator,在菜单栏点击`工具` > `选项`,在弹出窗口左侧选择`构建和运行`,右侧上方选择`Qt版本`,右上角点击`添加`,在之前安装qt-win-opensource的目录下的bin文件夹件中寻找qmake.exe.
  • 上方换到`工具链`选项卡,右上角点击`Add`按钮,选择`MinGW`,下方`编译器路径`选择GCC解压目录下的bin文件夹中的g++.exe;`调试器`选择GCC解压目录下的bin文件夹中的gdb.exe.
  • 点击`确定`关闭窗口.

编译器-GCC

IDE(集成开发环境)-Qt Creator

14 of 16

环境配置-用Qt Creator建立第一个工程

然后输入工程名称,和保存位置,注意不要包含中文(Qt Creator的一个Bug).

15 of 16

环境配置-运行程序

然后我们就可以输入程序代码了,我们试着输入一个稍微复杂点的程序:

#include <iostream>

using namespace std;

int main()

{

double a,b;

cin>>a>>b;

double c=a+b;

cout<<a<<"+"<<b<<"="<<c<<endl;

return 0;

}

输入后点击这里运行程序

16 of 16

最后

下一节:Hello World!