Thinking in C++摘要 第一卷第

来源:互联网 发布:古典音乐软件 编辑:程序博客网 时间:2024/05/02 06:12

本文章乃本人读书笔记,记录本人对于此书中不熟悉的地方,特此mark!


第二章 对象的创建与使用

  2.1语言的翻译过程 

翻译器包含2类:解释器(interpreter) 编译器(compiler)

2.1.1 解释器

2.1.2 编译器

编译器直接把源代码转化成汇编语言或机器指令。C语言可以分段编译各段程序。(separate compilation)

2.1.3 编译过程

C/C++编译时,要对源代码进行预处理。预处理器(preprocessor)。

编译分2遍进行,第一遍,对处理过的代码进行语法分析,编译器把源代码分解成小的单元并把它们按树形结构组织起来。第二遍,由代码生成器(code generator)遍历语法分析树,把树的每个节点转化成汇编语言或机器代码。

2.1.3.1

类型检查是编译器第一遍中完成的。

2.2 分段编译工具

2.1.1 声明与定义

2.2.1.1 函数声明的语法

2.1.1.2

C语言中,声明 int func2();表示一个可带任意参数(任意数目、类型)的函数,C++语言中它意味着不带参数的函数。

2.2.1.3 函数的定义

2.2.1.4 变量声明的语言

int a;声明它并不定义它,即不给它分配内存。 可以用extern int a;extern 可用于函数、变量声明,C语言中不支持extern函数声明。

2.2.1.5

包含头文件要用#include预处理命令,尖括号<>指定文件时,预处理器以特定方式寻找文件。用双引号时,从当前目录开始寻找。

2.2.1.6 标准C++include语句格式

老版使用.h 新版没有.h,要使用C标准库的头文件,加上C就行。

2.2.2 连接

2.2.3 使用库文件

2.2.3.1 连接器如何查找库

当C/C++ 要对函数或变量进行外部引用时,有2种处理方式。如果连接器没有在目标模块中找到函数或变量的定义,就去查找库。库有某种索引方式,连接器不必查找库里所有目标模块,只需按浏览索引。,找到后,仅仅是库中所包含定义的目标模块加入连接,而不是整个库。

2.2.3.2 秘密的附加模块

创建C/C++可执行程序时,连接器秘密连接某些模块,其中之一是启动模块,对程序的初始化。,初始化例程建立堆栈。

2.2.3.3 使用简单的C语言库

如果要用到多线程编程,最好使用POSIX线程库。

2.3 编写第一个C++程序

2.3.1 使用iostream类

2.3.2 名字空间

2.3.3 程序的基本结构

C++中 ,main总是返回int类型。

2.3.4 “hello world”

2.3.5运行编译器

GNU C++编译器  g++ hello world

2.4 关于输入输出流

2.4.1 字符数组的拼接

2.4.2 读取输入数据

cin( console input) oct 8进制hex 16进制格式

2.4.3 调用其它程序

system()函数在头文件<cstdlib>

2.5 字符串简介

string类

2.6文件的读写

打开文件读写操作,必须包含<fstream>。该文件自动包含<iostream>。

为了读而打开文件,要创建一个ifstream对象,用法与cin相同。

为了写而打开文件,要创建一个ofstream对象,用法与cout相同。

getline()函数用于把一行读入到string对象中(以换行符结束)getline的第一个参数是ifstream对象,从中读取内容,第二个参数是stream对象。

如果getline成功读入一行返回true,否则返回false。

2.7 vector简介

标准容器类(container)

c++标准其实不包含STL,STL由Alex Stepanov给C++标准委员会的,c++进行了修改后放进去的。

vector类是一个模板(template)


1 0