Essential C++第一章 C++编程基础
如何撰写C++程序
相关概念
main函数、数据类型、函数、语句、注释、输入输出流、头文件……
重点
类:用户自定义的数据类型
命名空间:是一种将库名称封装起来的方法,可以避免和应用程序发生命名冲突的问题。
对象的定义和初始化
相关概念
对象名称、数据类型、初始化语法、模板类、浮点数类型、内置字符常量、常量定义……
重点
- 对象名称不能以数字开头
- 不同的初始化方法——构造函数语法,其速度较赋值更快,且可以给对象多个初值,如
int num_tries(0);
- 模板类template class可以不用指明参数的数据类型,使得程序员直到使用template class时才决定真正的数据类型
- 常量表达式:被定义为const的对象,在获得初值后不能进行修改,一般只做读取的操作。
撰写表达式
相关概念
运算符(算术运算符、关系运算符、逻辑运算符、复合赋值运算符)、条件运算符、递增递减运算符(前置&后置)、运算符的优先级……
重点
条件运算符
expr ? true则执行这里 : false则执行这里
条件语句和循环语句
相关概念
if-else条件语句、switch条件语句、while循环语句、for循环语句……
重点
- switch语句要求测试条件值属于整数类型
- 当某个标签和switch的表达式值吻合时,该case标签之后所有的case标签也都会被执行,除非我们明确使用break来结束执行
如何运用Array和Vector
相关概念
数组类型、vector类、指定初始化列表进行初始化……
重点
- 容器的第一个元素位置为0而非1
- vect知道自己的大小是多少,其相当于一个动态数组
指针带来弹性
相关概念
指针的定义*和初始化、取地址运算符&、指针的性质、伪随机数生成器(rand()和srand())、成员选择运算符(.)……
重点
- 指针的初始化
int *pi = &ival;
- 提领操作:取得“位于该指针所指内存地址上”的对象,在指针前使用*号
- 指针的双重性质:既可以让我们操作指针包含的内存地址,也可以让我们操作指针所指的对象值
- 成员选择运算符和指针操作的转换
ival.empty() <=> pi->empty()
文件的读写
相关概念
fstream头文件、输出ofstream、输入ifstream、文件模式、cin、cout、cerr、clog……
重点
- endl会插入一个换行符,并清除输出缓冲区的内容