【编程语言学习】C++(2) 程序设计
本文最后更新于 28 天前,其中的信息可能已经有所发展或是发生改变。

简述:记录C++11标准下关键字,目前仅为简略整理。

    部分内容详细展开内容过多,碍于技术水平和个人精力限制,待后续扩展。

后续重大修改同步更新简述

C++关键字

  • 常见C++关键字

asm关键字

  • 用于调用内联汇编程序,允许在 C++ 程序中嵌入汇编代码

auto关键字

  • 表明变量”自动”具有本地范围,块范围的变量声明(如for循环体内的变量声明)默认为auto存储类型

bool关键字

  • _BOOL类型,8位整型。
  • 在C语言C89标准之前并不支持布尔类型,C89之后加入了stdbool.h头文件,定义了bool / true / false 宏便于使⽤,要注意的是C语言中的布尔类型实际上是整型,是一种伪布尔类型

break关键字

  • 跳出循环,可以用于跳出for循环,while循环,do while循环,switch语句

case关键字

  • 用于 switch 语句中,用于判断不同的条件类型

catch关键字

  • C++的异常处理关键字,通常catchtry 语句一起用于异常处理

char关键字

  • char字符类型,C++ 中的基本数据结构,其值一般为8位整数

class关键字

  • 可自定义的一种变量类型,与结构体联合体等类似,可使用 class 关键字声明一个类

const关键字

  • const意为常量的,所修饰的对象或变量不能被改变

const_cast关键字

  • 用来去除复合类型中constvolatile属性

continue关键字

  • continue关键字用于循环结构。它使程序跳过代码段后部的部分,与 break 不同的是,continue 不是进入代码段后的部分执行,而是重新开始新的循环

decltype关键字

  • 若仅希望得到类型,而不需要(或不能)定义变量的时候应该怎么办呢? C++11 新增了decltype 关键字,用来在编译时推导出一个表达式的类型,
  //语法格式为
  //其中,exp 表示一个表达式(expression)
  decltype(exp)

  decltype(f()) sum = x;
  decltype(cj) x = 0;        //x的类型是const int
  decltype(cj) y = x;        //y的类型是const int&,y绑定到变量x
  decltype(cj) z;            //错误:z是一个引用,必须初始化

default关键字

  • default用于 switch 语句。当 switch 所有的 case 都不满足时,将进入 default 执行。default 只能放在 switch 语句所有的 case 之后,并且是可选的

delete关键字

  • delete释放程序动态申请的内存空间。delete 后面通常是一个指针或者数组 [],并且只能 delete 通过 new 关键字申请的指针,否则会发生段错误

do关键字

  • do-while循环结构

double关键字

  • double类型,以双精度形式存储一个浮点数

dynamic_cast关键字

  • dynamic_cast,允许在运行时刻进行类型转换,从而使程序能够在一个类层次结构安全地转换类型。dynamic_cast 提供了两种转换方式,把基类指针转换成派生类指针,或者把指向基类的左值转换成派生类的引用

else关键字

  • if一起使用

enum关键字

  • 枚举类型

explicit关键字

  • explicit关键字只能用于修饰只有一个参数的类构造函数, 它的作用是表明该构造函数是显示的, 而非隐式的

export关键字

  • C++11前: 用于标注一个模板定义被导出,这允许在其他翻译单元中声明,但不定义同一模板 C++11起: 不使用,并保留该关键字

extern关键字

  • 修饰符extern用在变量或者函数的声明前,用来说明此变量/函数是在别处定义的,要在此处引用

false关键字

  • 布尔型变量,逻辑假,对应整型0

for关键字

  • forC++ 中的循环结构之一

friend关键字

  • friend声明友元关系。友元可以访问与其有 friend 关系的类中的 private/protected 成员

goto关键字

  • 用于无条件跳转到某一标号处开始执行

if关键字

  • 条件控制语句,与else同时使用

inline关键字

  • inline(内联)函数的定义将在编译时在调用处展开

int关键字

  • 整型数据类型,有符号32位整数

long关键字

  • 整型数据类型,有符号 32 整数 (long int)

long long关键字

  • 有符号 64 位整数

mutable关键字

  • 当一个成员变量被声明为mutable时,它显示地表明”这个变量可能在一个const语义环境中被更改”

namespace关键字

  • 命名空间

new关键字

  • new用于新建一个对象。new 运算符总是返回一个指针

operator关键字

  • operator用于操作符重载

private关键字

  • protected(受保护的),C++ 中的访问控制符。被标明为 private 的字段只能在本类以及友元中访问

protected关键字

  • protected(受保护的),C++ 中的访问控制符。被标明为 protected 的字段只能在本类以及其继承类和友元中访问

public关键字

  • public(公有的),C++ 中的访问控制符。被标明为 public 的字段可以在任何类

register关键字

  • register(寄存器)声明的变量称着寄存器变量,在可能的情况下会直接存放在机器的寄存器中

reinterpret_cast关键字

  • type-id 必须是一个指针、引用、算术类型、函数指针或者成员指针。它可以把一个指针转换成一个整数,也可以把一个整数转换成一个指针(先把一个指针转换成一个整数,在把该整数转换成原类型的指针,还可以得到原先的指针值)

return关键字

  • return(返回)用于在函数中返回值。程序在执行到 return 语句后立即返回

short关键字

  • short(短整型,short integer),C++ 中的基本数据结构,用于表示整数,精度小于 int

signed关键字

  • signed(有符号),表明该类型是有符号数,和 unsigned 相反。数字类型(整型和浮点型)都可以用 signed 修饰。但默认就是 signed,所以一般不会显式使用

sizeof关键字

  • 由于 C++ 每种类型的大小都是由编译器自行决定的,为了增加可移植性,可以用 sizeof 运算符获得该数据类型占用的字节数。

static关键字

  • static(静态的)静态变量作用范围在一个文件内

static_cast关键字

该运算符把 expression 转换为 type-id 类型,但没有运行时类型检查来保证转换的安全性。它主要有如下几种用法:

  • ① 用于类层次结构中基类和子类之间指针或引用的转换。进行上行转换(把子类的指针或引用转换成基类表示)是安全的;进行下行转换(把基类指针或引用转换成子类表示)时,由于没有动态类型检查,所以是不安全的。
  • ② 用于基本数据类型之间的转换,如把 int 转换成 char,把 int 转换成 enum。这种转换的安全性也要开发人员来保证。
  • ③ 把空指针转换成目标类型的空指针。
  • ④ 把任何类型的表达式转换成void

注意 static_cast 不能转换掉 expressionconstvolitale、或者 __unaligned 属性

struct关键字

  • struct(结构)类型,类似于 class 关键字

switch关键字

  • switch(转换)类似于 if-else-if 语句,是一种多分枝语句。它提供了一种简洁的书写,并且能够生成效率更好的代码。但是,switch 后面的判断只能是intchar也可以,但char本质上也是一种int类型)。switch 语句最后的 default 分支是可选的

template关键字

  • template(模板),C++ 中泛型机制的实现

this关键字

  • this 返回调用者本身的指针

throw关键字

  • throw(抛出)用于实现 C++ 的异常处理机制,可以通过 throw 关键字”抛出”一个异常

true关键字

  • true(真的),C++ 的基本数据结构 bool 类型的值之一。等同于 int 的非 0

try关键字

  • try用于实现 C++ 的异常处理机制。可以在 try 中调用可能抛出异常的函数,然后在 try 后面的 catch 中捕获并进行处理。

typedef关键字

typedef(类型定义,type define),其格式为:

    typedef  类型 定义名;

类型说明定义了一个数据类型的新名字而不是定义一种新的数据类型。定义名表示这个类型的新名字。

typeid关键字

  • 指出指针或引用指向的对象的实际派生类型

typename关键字

typename(类型名字)关键字告诉编译器把一个特殊的名字解释成一个类型。在下列情况下必须对一个 name 使用 typename 关键字:

1. 一个唯一的`name`(可以作为类型理解),它嵌套在另一个类型中的。

2. 依赖于一个模板参数,就是说:模板参数在某种程度上包含这个`name`。当模板参数使编译器在指认一个类型时产生了误解

union关键字

  • 结构体(struct)枚举(enum)一样,联合体也是一种构造类型;union成员表中含有若干成员,成员的一般形式为: 类型说明符 成员名。其占用的字节数与成员中最大数据类型占用的字节数

unsigned关键字

  • unsigned(无符号),表明该类型是无符号数,和 signed 相反

using关键字

  • 表明使用 namespace

virtual关键字

  • virtual(虚的),C++ 中用来实现多态机制

void关键字

  • void(空的),可以作为函数返回值,表明不返回任何数据;可以作为参数,表明没有参数传入(C++中不是必须的);可以作为指针使用

volatile关键字

volatile(不稳定的)限定一个对象可被外部进程(操作系统、硬件或并发线程等)改变,声明时的语法如下:

int volatile nVint;

这样的声明是不能达到最高效的,因为它们的值随时会改变,系统在需要时会经常读写这个对象的值。因此常用于像中断处理程序之类的异步进程进行内存单元访问。

wchar_t关键字

  • wchar_t 是宽字符类型,每个 wchar_t 类型占 2 个字节,16 位宽

while关键字

  • while循环
上一篇
下一篇