1.1 编写一个简单的C++程序
每个C++程序都必须包含一个main函数,操作系统通过调用main函数来运行程序。
函数定义的四部分:
-
返回类型:int, float, string, char...
-
函数名:符合标识符命名规则
-
参数列表:包含在函数名之后的小括号中,多参数时各个参数用逗号隔开
-
函数体:以花括号 {} 包含的数据和操作。结尾出必须有return返回语句,与返回类型相呼应。如果没有显式返回则缺省返回0
示例:
int main(){
return 0;
}
1.1.1 编译、运行程序
什么是编译:由编译器将编写好的程序转化为操作系统可以识别的机器码。
编译器的作用:
-
检查程序形式上的错误;比如:关键字错误,符号不匹配等
-
将源代码转换为操作系统可识别并执行的机器码
如何编译源代码:
-
用IDE编写的程序,可以直接运行。IDE中集成的编译器会自动编译程序
-
可以在终端手动编译。如:g++ hello_world.cpp
1.2 初识输入输出
C++中没有专门的输入输出语句,它使用一个标准库来(iostream)提供IO机制。包含istream和ostream。在C++中需要使用库设施就必须加载相关的头文件,这就像在Python程序中使用矩阵运算就需要import numpy一样。
流:字符序列,表示随着时间的推移,字符是顺序读出或读入的。
标准输入输出对象:
-
cin:标准输入;类似于Python中的input函数
-
cout:标准输出;类似于Python中的print函数
-
ceer:标准错误输出;用来输出警告和错误信息
-
clog:标准日志输出;用来输出程序运行时的一般性信息
使用IO操作的完整流程:
-
加载iostream标准库
-
使用std命名空间:这是由于标准库中cout, cin等都是定义在std命名空间中的
-
使用IO操作
示例:
1.3 注释简介
注释的作用:对代码进行解释说明,提高代码可读性。
C++中注释的种类:
-
单行注释:使用双斜杠 // 来表示。
-
多行注释:使用 /* */来包含多行注释内容。
note: C++编译器会识别并忽略注释内容。
示例:
// 这是一条单行注释
/*
* 这是第一条注释
* 这是第二条注释
*/
节练习:
由于1,2很容易判断是正确的,这里只演示第三四条语句。
可以发现第三条语句是错误的,这是由于注释符无法匹配导致输出错误。
第四条语句正确输出,由于前后两队多行注释各正确注释了引号,只对中间的字符进行输出。
1.4 控制流
控制流的作用:用来执行更复杂的程序执行顺序。通常使用的方法是使用条件对执行顺序进行控制。
1.4.1 while语句
while语句的作用:用来反复执行某段代码,直到满足指定条件为假时。也可以这么理解,当满足条件的这段过程中,一直执行while代码块的程序。
示例:
运行结果为:
1.4.2 for 语句
for语句的作用:与while作用相似,形式上更加简化。
for循环的结构:
-
循环头:for关键字后小括号里的内容
-
-
初始化语句
-
循环条件
-
表达式
-
-
循环体:循环头下方代码块的内容,具体的操作
示例:
1.4.3 读取不定量的输入数据
思路:相当于将输入和读取做循环操作
示例:
输入1-10结果为:
需要注意的是这里的程序截止条件是输入文件结束符(Ctrl + Z)或不符合输入条件时。这是停止的方法时输入一个字母,不符合输入为Int类型的定义。
1.4.4 if 语句
使用if else的逻辑结构来控制程序的执行。与其他语言的语法一致。
示例:
输入数字序列为41,41,42,45,50时的结果是:
注意:示例中是按顺序判断的,如果相邻两数不同则停止计数,出现次数为1。对于打乱顺序的序列无法正确计数。
关于C++程序的缩进和格式:C++程序中通常使用花括号来放置代码块,它表明了代码与函数之间的包含关系,不过我们发现while, for, if等语句可以使用花括号也可以使用缩进来表示这层关系。在C++中这都是允许的。尽量保持风格的统一与代码的优美,这会提高代码质量和可读性。
1.5 类简介
1.5.1 什么是类
它定义了一个类型,以及与其相关的一组操作。每个类都定义了一个新的类型,类名就是类型名。
类:一个模板,用于指定对象的形式,包含了数据表示法和处理数据的方法。如:湖北双龙铸币模板
对象:类的一个实例,类定义了对象可以使用的所有操作。如:一枚湖北双龙银币
如何定义类:以关键字 class 开头,跟类的名称。类的主体包含在花括号中,结尾的花括号后要跟一个分号或一个声明列表
示例:
class Boy
{ // public确定了类成员的访问属性为公开访问
public:
double height; // 身高
double weight; // 体重
};
如何定义对象:定义对象就像声明基本变量一样。使用类名跟对象名的方式
示例
Boy Tom;
1.5.2 初识成员函数
什么是成员函数:定义在类中的函数
示例:
其中get_value就是类Boy的成员函数。
如何访问成员函数:使用类对象来访问,也称调用,需要使用点运算符
Tom.get_value()
返回结果为: