1. C++文件和流
C++读取文件需要添加头文件:#include<fstream>
需要使用标准库fstream,它定义了三个新的数据类型:
a.ofstream:输出文件流,用于创建文件冰箱文件写入信息
b.ifstream:输入文件流:用于从文件读取信息
c.fstream:兼有以上两种类型的功能
1.1 文件的打开:open()
1.2 文件的关闭:close()
1.3 写文件:使用流插入符<<向文件写入信息
1.4 读文件:使用流提取运算符>>从文件读取信息,getLine()函数从外部读取一行
1.5 文件指针位置:seekp,seekg函数
2.C++异常处理
需要添加头文件:#include<exception>
try:try块中包含可能抛出异常的代码
catch:用于捕获异常
throw:抛出异常
3. C++内存的动态分配
C++程序中的内存分为两个部分:
栈:在函数内部声明的所有变量都将占用栈内存
堆:程序中未使用的内存,在程序运行时可用于动态分配内存
new运算符:为给定类型的变量在运行时分配堆内的内存,这会返回所分配的空间地址
delete运算符:释放动态分配的内存
对数组空间的释放:delete[] 数组名
4. C++模板
模板是泛型编程的基础,泛型编程即以一种独立于任何特定类型的方式编写代码,可以使用模板来定义函数和类
模板函数的定义如下:
template<class type>ret_type func_name(paraments list){
...
...
}
关键字class也可以替换为关键字typename
type为函数所使用的数据类型的占位符名称,这个名称可以再函数定义中使用
5. C++预处理器
预处理器是一些指令,指示编译器在实际编译之前所需完成的预处理,所有的预处理都是以#开头的。
#define预处理
宏定义,简单的字符替换,可带参数
#define PI 3.1415926
#define min(a,b) a<b?a:b
条件编译
可以在调试时进行编译,调试开关可以用一个宏实现
#ifndef PI
#define PI 3.1415926
#endif