第一章知识点
1. 初识C++
1.1 函数
①c++中可以包含一个或者多个函数,但是必须有一个命名为main函数
②main函数必须返回int型(内置类型/语言自身定义的类型)
③如果一个名为v的变量的类型为T,那么V具有类型T,或者V是一个T类型变量。
1.2 源文件命名
源文件以一个后缀结尾,后缀是由一个句点加上一个或者多个字符构成,例如 .cpp .cc .cp .cxx 以及 .c 等等
visual studio 2019的代码后缀名为 .cpp
1.2.1 返回值
在2019里面,返回值为0或者-1都不会影响最后程序的输出结果,也没有出现编译错误。
2. 输入输出
2.1 iostream数据库
在primer C++中大多使用iostream数据库,其包含俩个基本数据类型,分别为输入流(istream) 和 输出流(ostream); 一个流就是一个字符序列
2.1.1 四个基本IO对象
标准库定义了四个IO对象
istream类型:①cin(标准输入)
ostream类型:
②cout(标准输出)
③cerr(标准错误–输出警告和消息错误)
④clog(输出程序运行时的一般信息)
2.1.2 C与C++头文件对比
c++中的头文件为iostream,C语言中为stdio.h(标准库函数输入输出)
2.2 输入/出运算符
输出运算符<< ,其左侧必须是一个otream对象,右边为输出的值
输入运算符>>,左侧为istream对象,右侧为输入运算对象
2.2.1 单独输出
std::cout << "Enter the number!"`
输出: Enter the number!
2.2.2 输入/出混合使用
std::cout << "Enter the number!" << std::endl;
std::cin >> v1 >> v2;
等价于
( std::cout << "Enter the number!") << std::endl;
(std::cin >> v1 )>> v2;
等价于
std::cout << "Enter the number!"
std::cout<< std::endl;
std::cin >> v1;
std::cin >> v2;
2.2.3 长代码输出格式
std::cout << "The sum of" << v1 << "and"
<< v2 << "is"
<< v1 + v2 << std::endl;
【注意】
如果输出没有结束,不要加分号
如果输出代码太长,可以换行输出,但是不能在每一个换行的结尾加上分号
2.3 字符串字面值常量
字符串字面值常量–—用双引号括起来的,其中间的文本被打印到标准输出(cout)
在输出字符串字面值常量的时候,加 “ ” (双引号) 输出,输出的时候双引号自动消失在输出栏中
而输出int型或者其他类型时,其输出不加双引号。
2.4 作用域运算符
(::)运算符作用之一:访问命名空间的名字
3. endl操作符
3.1 endl定义
不是end1(❌)
endl是C++标准库中的操控器(Manipulator)
包含于: iostream
命名空间(namespace)为:std
其主要搭配iostream对象来使用,如cout、cerr等等
3.2 endl作用
endl具有换行和刷新输出流两个作用
endl的效果是结束当前行,并将目前为止的所有输出都真正写入输出流中,而不是停留在内存等待写入流中
endl会不停地刷新输出流,频繁的操作会降低程序的运行效率,这也是C++标准库对流的输入/输出操作使用缓冲区的原因
3.2.1 对比\n与endl
没有必要刷新输出流的时候应尽量使用 \n,比如对于无缓冲的流 cerr,就可以直接使用 \n。
3.2.2 使用注意
在程序打印语句调试的时候,这类语句 必须保证"一直"刷新流. 否则在程序崩溃的时候,输出还在缓冲区域,导致我们寻找程序错误的时候产生误判。
4. 类
4.1 类名和文件名
①属于标准库的头文件用 < > 表示头文件名(比如iostream)
不属于标准库的头文件用 “ ” 表示。
②如果类名为state,其头文件名常为state.h 或以.H .hpp .hxx为后缀
标准库文件名不需要后缀。
4.2 成员函数
成员函数(也称方法)是类的一部分函数
如果定义int型 item1 ,并且isbn属于成员函数
有: item1.isbn( )
【名为item1的对象的isbn成员】
4.2.1 点运算符(.)
左侧:类类型的对象
右侧:对应类型的一个成员函数名
结果:右侧运算对象指定的成员【如果isbn表示书目,则结果为对应的书目】