C++常见关键字
C++关键字简单介绍
C++98----63个关键字
在此选择平时比较常用的关键字解释
- cout/cin/cerr
- 标准输入cin,通过键盘输入进程序中
- 标准输出cout,将程序运行结果通过显示器输出
- 标准错误cerr,将程序运行中的错误通过显示器输出
int a = 10;
cin>>a;
cout<<a;
cerr<<"func";
- endl(换行)
将输出到显示器上的文字进行回车换行
int a = 10;
cout<< a <<endl;//endl 为回车换行
- namespace(命名空间)
- 如果项目工程足够大,对于变量的命名以及对于函数的命名重复型就会提升,为了防止出现命名冲突,提出命名空间概念
- 方便用户进行操作,提高了代码的可读性
- 书写方式
namespace N1//N1命名空间
{
int _a = 100;
void Func()
{
cout << "..." << endl;
}
}
namespace N2//N2命名空间
{
int _a = 10;
void Func()
{
cout << "123" << endl;
}
}
int main()
{
N1::_a;//外界访问时,需要加上空间名称::
N2::Func();//访问互不干扰
}
- auto(静态类型推导)
主要作用为静态类型推导
int a = 10;
auto b = a;//将b的类型定为auto,duib进行类型推导
//这对于STL容器中的迭代器,模板类的进行类型推导有这个很大的帮助
- inline(内联函数)
- 与C语言中的宏定义很相似,并且解决了了C中宏定义(直接代替代码的缺点)
- 如果内联函数中存在递归、循环、内容较常则编译器在编译时会将其视为函数处理
- 没有函数压栈开销
- 书写方式
inline void Func(){
<code...>
}
- bool(数据类型)
- C语言中不存在true/false的判断,所以在C++中增加了该类型的判断
- 可以声明函数返回值为bool类型,也可以声明变量为bool类型
- 书写方式
bool Func()//定义函数bool类型
{
bool a = 1, b = 0;//定义变量bool类型
return a&b;//返回true or false
}
- try / catch
- 捕捉代码中存在的异常
- 书写方式
void func1()
{
throw b; // 抛异常
}
<other code ...>
try //捕获异常
{
func1();
}
catch (...)//(...)内容为捕获方式,and 处理异常
{
func2();//处理异常函数
}
- class(类声明)
- 声明类的方法,与声明结构体方式类似
- C++中可以在类中定义变量及方法
- 书写方式
class Class//类名称
{
public://外界访问权限
void func()//成员方法
{
cout << "..." << endl;
}
private://访问权限
int _a;//成员变量
char _b;
static int c;
};
- operator(重载操作符)
- 是C++针对于用户自定义类型的对象或者变量进行自定义运算的一种方式(如:日期之间的加减等),扩展了运算功能
- 可进行输入输出操作符的重载,方便了用户操作等
- 书写方式
//类内进行日期的加法
class Date
{
void operator+(Date& d)//运算符重载函数
{
_year += d._year;
_month += d._month;
_day += d._day;
}
private:
int _year;
int _month;
int _day;
};
- using(引用)
- 命名空间引用
using namespace std;//使用标准命名空间
- 在子类中引用基类成员
class B
{
public:
int _a = 10;
};
class D
{
public:
using B::_a;//引用B中的_a
};
- 对变量进行别名指定(C++11)
using a = b;
- virtual(虚拟)
- 一般使用在多态中进行虚函数继承派生,,此处不做详细解释~
- friend(友元)
- 一般使用在类与类之间,或者类内与类外函数之间,建立友元关系,可以在类外函数或者其他类中访问友元类的成员函数和变量
C++11----73个关键字
新增关键字
关键字 | 作用 |
---|---|
alignas | 用于声明时指定对齐类似于现有的类型。和sizeof类似,两者的操作数都不被求值 |
alignof | 获取指定表达式的sizeof的对齐 |
constexpr | 类似const但更强大,修饰函数或对象,表示函数结果或对象是编译时决定的常量,以便优化 |
char16_t/char32_t | 二者分别表示16位字符型和32位字符型,类似char和wchar_t,也是一般只专用于表示字符的整数类型,且设计上用于表示Unicode字符 |
decltype | 用于编译时推断类型。此外参与函数声明的另一种语法:指定返回auto,比auto作用更强大 |
nullptr | 空指针常量,相当于C语言中的NULL,具有比C语言NULL更为方便的作用 |
noexcept | 静态异常规范,只指定函数(模版)是否有异常抛出 |
static_assert | 用于编译时的静态断言,如果指定的表达式为false,则直接编译失败 |
auto(C++11增加用法) | C++11新增了auto的作用,在C++11中auto会使编译器静态判断其应有的类型 |
thread_local | 新增加的,标准线程库 |
for(C++11增加用法) | 新增了ranged-based for循环,用:分隔声明的对象和指定循环的范围 |