导图 - 第1章 开始
1.1 编写一个简单的 C++ 程序
main()
函数是程序的入口- 参数列表为形参列表
1.1.1 编译、运行程序
- C++源文件的后缀一般为
.cpp
- 编译好以后会在相应的路径下生成
.exe
文件和.obj
文件
编译、连接过程
1.2 初识输入输出
iostream
库包含两个基础类型istream
和ostream
- stream(流):一个流就是一个字符序列,是从IO设备流出或写入IO设备的。
“流”主要表达的是,随着时间的推移,字符是顺序生成或消耗的 istream
:input stream,输入流ostream
:output stream,输出流
流入、流出是站在主机的角度来说的:
- 从输入设备流入主机:从键盘流入键盘缓冲区,回车,流入 输入缓冲区,形成
cin
流,然后用输入运算符/提取符>>
从输入缓冲区中提取数据给程序中相关变量- 从主机流出输出设备:先将数据放入程序中的输出缓冲区保存,缓冲区满了或遇到endl时,将缓冲区中的数据传到显示器显示出来
cin
、cout
、cerr
、clog
是从iostream
库/头文件中实例化的对象
cin
:istream
类的对象;标准输入,从键盘读取输入cout
:ostream
类的对象;标准输出,向屏幕输出数据cerr
:ostream
类的对象;标准错误clog
:ostream
类的对象;用来输出程序运行时的一般信息
其他
#include <iostream>
:引入头文件<iostream>
std
:是标准库的缩写(standard library),它代表标准库命名空间。命名空间可以帮助我们避免不经意的名字定义冲突,以及使用库中相同名字导致的冲突::
:作用域运算符,与命名空间搭配使用,例如std::cin
<<
:输出运算符、>>
:输入运算符- 操纵符
endl
,相当于结束当前行,并将与设备关联的缓冲区中的内容刷到设备中
1.3 注释简介
C++有两种注释
- 单行注释
- 界定符对的注释,即多行注释
- 不能嵌套,否则会报错
// 单行注释
/*
多行注释
*/
嵌套出现时,下面的 */ 会报错
/*
/* */
*/
1.4 控制流
控制流是一种机制,它决定程序下一步应该怎么执行
1.4.1 while
反复执行一段代码,直至给定条件为假为止
while
循环适用于循环次数不确定的场合
1.4.2 for
在循环条件中检测变量,在循环体中递增变量的模式使用非常频繁,所以C++中有了for
循环
- 循环头:初始化语句、循环条件、表达式
- 循环体
for (int val = 1; val <= 10;++val)
sum += val; //等价于sum=sum+val
1.4.3 读取数量不定的输入数据
#include <iostream>
int main()
{
int sum = 0, value = 0;
//读取数据直到遇到文件尾,计算所有读入的值的和
while (std::cin >> value)
{
sum += value; //等价于sum=sum+value
}
std::cout << "Sum is:" << sum << std::endl;
return 0;
}
循环条件检测的实际上是std::cin
,即检测流的状态(见第8章)
从键盘中输入文件结束符
1.4.4 if
分支
1.5 类简介
C++中通过类(class)来定义自己的数据结构
一个类定义了一个类型,以及与其相关的一组操作
使用类之前需要了解三件事:
- 类名
- 它在哪里被定义的?
- 它支持什么操作?
1.5.1 Sales_item类
- 引入自定义的头文件:
#include "Sales_item.h"
(标准库<iostream>
) - 以上操作的运算符肯定重载了,即重新定义了
1.5.2 初识成员函数
成员函数是定义为类的一部分的函数,有时也被称为方法