因为之前没有学习过C++所以想简单学习一下。
文章目录
前言
每个C++ 程序都包含一个或多个函数(function),其中一个必须命名为main。操作系统通过调用main来运行C++ 程序。
一、简单程序编写
最简单的程序
初学者一般使用微软的VC++,我是直接已经安装了VSCode2019就没有再重新安装其他程序。最简单的C++程序((在windows运行,运行结束时返回0给Windows)如图所示,不实现任何功能,只是返回一个0。按照C++的标准必须写一个main 函数,返回值必须是int 类型(0是整数,对应int)。
在我们设计C++程序时,可以写很多个函数,但是必须有一个main 函数,因为C++程序就是用main 函数开始执行的。所有的函数都是由4个部分组成,返回值、函数名称、小括号(里面是函数参数)、函数体。int 是C++的内置类型,是整型,用于保存整数。
输入输出程序
设计一个输入输出程序,需要用到标准库里的2个对象,在标准库里面一共定义了4种输入输出对象,最常用的是2个,标准输入对象cin 一般对应键盘,标准输出对象cout 一般对应显示器。
预处理指令include 包含一个头文件,头文件里面有我们要使用的标准输入对象、标准输出对象。std 是名称空间相当于文件夹名称,::是作用域操作符,cout是文件夹里的文件。endl 是操纵符( manipulator ),表示换行,会自动刷新与显示器相关联的缓冲区。
运算符打印 endl,这是一个被称为操纵符( manipulator )的特殊值。写入endl的效果是结束当前行,并将与设备关联的缓冲区 (buffer)中的内容刷到设备中。缓冲刷新操作可以保证到目前为止程序所产生的所有输出都真正写入输出流中,而不是仅停留在内存中等待写入流。
cin 是标准输入对象,>> 是输入运算符。
二、注释
C++ 地注释可以帮助人类读者理解程序。注释通常用于概述算法,确定变量的用途,或者解释晦涩难懂的代码段。编译器会忽略注释,因此注释对程序的行为或性能不会有任何影响。
虽然编译器会忽略注释,但程序员不会。即使系统文档的其他部分已经过时,程序员也倾向于相信注释的内容是正确可信的。因此,错误的注释比完全没有注释更糟糕,因为它会误导程序员。因此,如若修改代码切记更新注释!
注释的种类
C++ 中有两种注释:单行注释和界定符对注释。单行注释以双斜线(//)开始,以换行符结束。当前行双斜线右侧的所有内容都会被编译器忽略,这种注释可以包含任何文本,包括额外的双斜线。界定符对注释,则使用两个界定符(/*和* /),以/* 开始,以*/ 结束,可以包含除*/外的任意内容,包括但不限于换行符。编译器将所有在/*和*/之间的所有内容都处理为会注释。
界定符对注释不能嵌套使用。
三、控制流
while 语句
while语句反复执行一段代码,直至给定条件为假为止。
for 语句
每个 for语句都包含两部分:循环头和循环体。循环头控制循环体的执行次数,它由三部分组成:一个初始化语句(init-statement)、一个循环条件(condition)以及一个表达式( expression)。
#include <iostream>
//预处理指令
int main()
{
int sum = 0;
for (int val = 2; val <= 16; ++val)
{
sum += val;
}
std::cout <<"计算出2至16的总和是:" << sum << std::endl;
return 0;
}
1.创建变量val,将其初始化为2。
2.检测val是否小于等于16。若检测成功,执行for循环体。若失败,退出循环,
继续执行for循环体之后的第一条语句。
3.将val的值增加1。
4.重复第2步中的条件检测,只要条件为真就继续执行剩余步骤。
读取数量不定的输入数据
while循环会一直执行直至遇到文件结束符(或输入错误)。在 Windows系统中,输入文件结束符的方法是敲 Ctrl+Z(按住Ctrl键的同时按Z键)然后按Enter或 Return键。在UNIX系统中,包括Mac OS X系统中,文件结束符输入是用 Ctrl+D。
#include <iostream>
//预处理指令
int main()
{
int sum = 0, val = 0;
//读取数据直到遇见文件尾,计算所有输入值之和
while (std::cin >> val)
{
sum += val;
}
std::cout <<"所有输入总和是:" << sum << std::endl;
return 0;
}
if 语句
#include <iostream>
//预处理指令
int main()
{
int curr= 0, val = 0;
//curr是正在统计的数;读入数值存入val
if (std::cin >> curr)
{
int cnt =1;
while (std::cin >> val)
{
if (val == curr)
++cnt;
else {
std::cout << curr << "occurs"
<< cnt << "times" << std::endl;
curr = val;//记住新值
cnt = 1;//重置计数器
}
}//while循环结束
//打印文件中最后一个值的个数
std::cout << curr << "occurs"
<< cnt << "times" << std::endl;
}//最外层if语句结束
return 0;
}
if语句中的条件使用了相等运算符(==)来检测val是否等于curr。如果是,执行紧跟在条件之后的语句。将cnt增加1,表明再次看到curr。
四、类
在C++中,我们通过定义一个类(class)来定义自己的数据结构。一个类定义了一个类型,以及与其关联的一组操作。类机制是C++最重要的特性之一。实际上,C++最初的一个设计焦点就是能定义使用上像内置类型一样自然的类类型(class type)。每个类实际上都定义了一个新的类型,其类型名就是类名。与内置类型一样可以定义类类型的变量。
#include <iostream>
#include "Sales_item.h"
int main()
{
Sales_item item1, item2;
std::cin >> item1 >> item2; //read a pair of transactions
std::cout << item1 + item2 << std::endl; //print their sum
return 0;
}
包含sales_item 和 iostream 两个头文件。然后定义了两个sales_item 对象来保存销售记录。从标准输入读取数据,存入两个对象之中。输出表达式完成加法运算并打印结果。
什么是成员函数?
这个if 语句的检测条件 item1.isbn ( ) == item2.isbn () 调用名为 isbn 的成员函数(member function)。成员函数是定义为类的一部分的函数,有时也被称为方法(method)。
#include <iostream>
#include "Sales_item.h"
int main()
{
Sales_item item1, item2;
std::cin >> item1 >> item2;
// 首先检查iteml和item2是否表示相同的书
if (item1.isbn() == item2.isbn())
{
std::cout << item1 + item2 << std::endl;
return 0; //表示成功
}else{
std::cerr << "Data must refer to same ISBN"
<< std::endl;
return -1;
}
}
使用点运算符(.)来表达我们需要“名为 item1 的对象的 isbn 成员”。点运算符只能用于类类型的对象。其左侧运算对象必须是一个类类型的对象,右侧运算对象必须是该类型的一个成员名,运算结果为右侧运算对象指定的成员。
总结
以上就是今天C++学习的内容,本文仅仅简单介绍了C++的程序结构和注释、控制流、类。