C++
C Plus Plus
1.预备知识
精英王子-2012.10.21
CC BY-NC-SA(署名-非商业性使用-以相同方式共享) 3.0
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
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
C、C++、其他编程语言的历史
C语言(Dennis Ritchie于1970年,同样的程序):
#include <stdio.h>
int main()
{
printf("Hello World!\n");
return 0;
}
C、C++、其他编程语言的历史
这是我们要讲的C++(Bjarne Stroustrup于1983):
#include <iostream>
using namespace std;
int main()
{
cout<<"Hello World!"<<endl;
return 0;
}
C、C++、其他编程语言的历史
第一个C++标准
目前普遍使用的版本,我们主要讲C++03
最新的C++标准,我会提到一些
C++能做什么——没错,他们都是由C++编写的
C++能做什么
不过基础是必须要打好的,恐怕今后很长一段时间我们需要和“黑窗口”打交道:
但是不要小瞧它,在之后的几节课中,我们可以借助它完成一些非常复杂的数学计算,或者编写有趣的文字游戏.
如何学习
课上:
课下:
编译、链接、运行
C++源文件
编译器
编译是一个不可逆的过程
编译
编译本质是一个翻译的过程,把C++代码翻译成机器码。
这是因为人类编写/阅读C++代码更方便,而计算机只认识机器码。
编译、链接、运行
只支持Windows系统
开源、支持多种平台/架构
年轻,小巧,编译速度快,同样开源
环境配置
在今后,我会使用以下软件来演示:
考虑到大家用Windows会习惯一点,不过也会稍微涉及Linux
同时支持Windows和Linux
免费、漂亮的中文UI(用户界面)
IDE(集成开发环境),并非必须的,但是使用它可以很大程度提高工作效率,它会自动为你完成一些机械化的工作.
环境配置
编译器-GCC
IDE(集成开发环境)-Qt Creator
环境配置-用Qt Creator建立第一个工程
然后输入工程名称,和保存位置,注意不要包含中文(Qt Creator的一个Bug).
环境配置-运行程序
然后我们就可以输入程序代码了,我们试着输入一个稍微复杂点的程序:
#include <iostream>
using namespace std;
int main()
{
double a,b;
cin>>a>>b;
double c=a+b;
cout<<a<<"+"<<b<<"="<<c<<endl;
return 0;
}
输入后点击这里运行程序
最后
下一节:Hello World!