c++常见关键字

1.数据类型

bool:布尔类型,属于基本类型的整数类型,取值为真和假

true:具有布尔类型的字面量,表示真

false:具有布尔类型的字面量,表示假

char:表示字符型,定义了字节的大小,char表示单字节字符

wchar_t:表示宽字符型,表示多字节字符

int:整型数

double:双精度浮点数,精度不小于float

float:浮点数

short:

long:long double表示精度不小于double的浮点数

signed:前缀修饰整数类型,有符号,不可修饰wchar_t,char16_t,char32_t

unsigned:前缀修饰整数类型,无符号

explicit:避免自定义类型隐式转换成类类型

auto:根据初始值自动推断变量的数据类型,不是每个编译器都支持auto

2.语句相关

 switch:分支语句的起始

case:case标号

default:默认分支

do,for,while:循环语句的组成部分

if ,else:条件语句的组成;if 表示条件,之后else的表示否定分支

break:跳出for,while循环或switch语句

continue:调到一个循环的起始位置

goto:用于无条件跳转到函数内的标号处,一般不建议了,风险大

3.定义,初始化相关

 const:类型修饰符,用于变量或函数参数声明,表示只读类型(指定类型安全性,保护对象不被意外修改)

volatile:指定被修饰的对象类型的读操作是副作用(读取不能随便优化合并,适合映射I/O寄存器)a 当读取一个变量时,为提高存取速度,编译器优化时有时会先把变量读取到一个寄存器中,以后再取变量值时,就直接从寄存器中取值 b 优化器在用到volatile变量时必须每次都小心地重新读取这个变量的值,而不是使用保存到寄存器的备份 c volatile适用于多线程应用中呗几个任务共享的变量

enum:构成枚举类型名的关键字

export:使用该关键字可实现模板函数的外部调用。对模板类型,可以在头文件中声明模板类和模板函数。在代码文件中,使用关键字export来定义具体的模板类对象和模板函数,然后再其他用户代码为念中,包含声明头为念后,就可以使用这些对象和函数

extern:当出现extern "C"时,表示extern "C"之后的代码按照c语言的规则去编译;当extern修饰变量或函数时,表示其具有外部链接属性,即其既可以再本模块中使用也可以在其他模块中使用

public:权限修饰符。public表示公有的,访问不受限制;

protected:保护的,只能在本类和友元中访问;

private:私有的,只能在本类,派生类和友元中访问;

template:声明一个模板,模板函数,模板类,模板的特化;

static:可修饰变量(静态全局变量,静态局部变量),也可以修饰函数和类中的成员函数。static修饰的变量的周期为整个函数的声明周期。具有静态生存期的变量,只有在函数第一次调用时,进行初始化,在没有显示初始化的情况下,系统把他们初始化为0;

class:一般的类声明

struct:用于类型声明,struct在c++中是特殊的类类型,声明中仅默认隐式的成员和基类访问限定与class不同(struct是public,class是private)。

union:是联合体类型,满足特定条件类型

POD(Plain Old Data)plain普通类型old 与c语言兼容 

POD struct或POD union可以和C语言中的 struct和union兼容

mutable:突破const的限制,mutable修饰的变量,将永远处于可变的状态,即使在一个const函数中。

virtual:声明虚基类,虚函数。虚函数=0时,则为纯虚函数,纯虚函数所在的类称为抽象类;

4.系统操作相关

 catch,throw, try:用于异常处理;try指定try块的起始,try块后的catch可以捕获异常,异常由throw抛出。throw在函数中还表示动态异常规范

new,delete:属于操作符,可以被重载;new表示向内存申请一段新的空间,申请失败会抛出异常。new会调用operator new函数,再在operator new函数里调用malloc函数分配空间,然后在调构造函数。delete不仅会清理资源,还会释放空间。delete会调用析构函数,其次调用operator delete函数,最后在operator delete函数里面调用free函数。malloc申请内存失败后会返回空。free只是清理了资源,没有释放空间。

friend:友元,使其不受访问权限控制的限制。例如,在1个类中,私有变量外部是不能直接访问的,假如另外1个类或函数要访问本类的1个私有变量时,可以吧这个函数或类声明为本类的友元函数或友元类,这样他们就可以直接访问本类的私有变量。

inline:内联函数,在编译时将所调用的函数代码直接嵌入到主调函数中。各个编译器的实现方式可能不同。

operator:和操作符连用,指定一个重载了的操作符函数。比如,operator+

register:提示编译器尽可能的吧变量存入到cpu内部寄存器中。‘

typename:typename关键字告诉编译器把一个特殊的名字解释为一个类型。

5.命名相关

using:(1)在当前文件引入命名空间,using namespace std;(2)在子类中使用,using声明引入基类成员名称。

namespace:c++标准程序库中的所有标识符都被定义于一个名为std的namespace中,命名空间除了系统定义的名字空间之外,还可以自己定义,定义命名空间用关键字“namespace”,使用命名空间时用符号“::”指定。

typedef:为现有数据类型创建一个新的名字,便于程序的阅读和编写。

6.函数和返回值相关

void:"空"类型,指定函数无返回值或无参数

return:表示从被调函数返回到主调函数继续执行,返回时可附带一个返回值。

sizeof:返回类型名或表达式具有的类型对应的大小’

typeid:操作符,返回类型为标准库中类型的引用

7.其他

 this:每个类成员函数都隐含了一个this指针,用来指向类本身。this指针一般可以省略,但在赋值运算符重载的时候要显示使用。静态成员函数没有this指针。


asm:_asm是一个语句的分隔符,不能单独出现,必须接汇编指令,一组被大括号包含的指令或一对空括号。

_asm

{

mov al,2

        mov dx,0xD007

        out al,dx

}

也可以在每个汇编指令前加_asm

*_cast:const_cast,dynamic_cast,reinterpret_cast,static_cast

const_cast:删除const变量的属性,方便赋值;

dynamic_cast:用于将一个父类对象的指针转换为子类对象的指针或引用;

reinterpret_cast:将一种类型转换为另一种不同的类型;

static_cast:用于静态转换,任何转换都可可以用它,但他不能用于两个不相关的类型转换。

你可能感兴趣的:(c++,c++)