一、基础规范
-
main函数类型 :C++ 中
main函数只能是int类型。 -
头文件 :
unistd.h是系统调用库,不属于C++标准库。 -
文件名后缀 :C++ 源文件通常使用
.cpp。 -
编译命令 :
g++
二、命名空间(namespace)
-
本质:命名空间不占内存,只针对编译器起作用,限制编译器对其中符号的访问。
-
作用:空间内部的变量互不影响,避免命名冲突。
-
局部引用 :
ZS::a(通过域访问符::访问命名空间中的单个元素)。 -
全局引用(不推荐) :
using namespace ZS;在全局作用域引入整个命名空间,容易引起命名冲突。 -
局部引入整个命名空间 :
using namespace ZS;写在函数内部(推荐)。 -
引入单个元素 :
using ZS::a;(可写在全局或局部)。 -
匿名命名空间 :只在当前文件中生效,相当于
static的作用。 -
命名空间别名 :
namespace ZhangSan = ZS;
三、C++ 对 C 的增强
-
结构体:C++ 中的结构体可以包含函数。
-
using替代typedef:using可以代替typedef定义类型别名。cpp
using INT = int; // 等价于 typedef int INT;
四、重载
-
函数重载(overload):函数名相同,参数列表不同(参数类型、个数、顺序不同),与返回值无关。
-
运算符重载:把运算符当成函数处理,可以自定义运算符的行为。
五、输入输出
endl 作用:
刷新输出缓冲区
换行(相当于 \n 或 \r\n,但多一个刷新缓冲区的操作)
cin 作用:
cin 有一个输入缓冲区,默认按空格或换行分割输入。
一旦输入类型不匹配,cin 会进入错误状态,失败变量保持原值不变;并锁住后续输入(不读取),需要手动清除错误才能恢复。
cs
if (cin.fail()){//判断cin有没有报错,出错返回ture
cin.clear();//清理错误
cin.ignore();//忽略上次出错内容,只会忽略第一个
}