注:register 关键字被弃用。
1.__asm关键字是一个语句分隔符,用于嵌入汇编指令
__asm关键字启动内联汇编并且能写在任何c/c++合法语句之处.它不能单独出现.它必须接汇编指令、一组被大括号包含的指令或一对空括号.术语“__asm 块”在这里是任意一个指令或一组指令无论是否在括号内。
http://blog.youkuaiyun.com/sinat_24229853/article/details/47834675
2.auto关键字
C++引入auto关键字主要有两种用途:
一是在变量声明时根据初始化表达式自动推断该变量的类型,
auto a = 123;
二是在声明函数时作为函数`返回值`的占位符
http://blog.youkuaiyun.com/Xiejingfa/article/details/50469045
3.enum关键字
一个枚举是一个类型,可以保存一组由用户刻画的值。
enum weather {sunny, cloudy, rainy, windy};
http://blog.youkuaiyun.com/Xiejingfa/article/details/50469045
4.operator关键字(重载操作符)
operator是C++的关键字,它和运算符一起使用,表示一个运算符函数,理解时应将operator=整体上视为一个函数名。
http://blog.sina.com.cn/s/blog_4b3c1f950100kker.html
5.throw关键字(抛出异常)
函数后面后加关键字throw(something)限制,是对这个函数的异常安全性作出限制。
void fun() throw()不抛出任何异常,表示函数是绝对安全的
void fun() throw(...)表示fun可以抛出任何形式的异常。
void fun() throw(int)fun抛出int类型的异常
https://zhidao.baidu.com/question/557297790.html
6.explicit关键字
将构造函数声明为显式的 避免隐式转换
隐式转换:
如果c++类的构造函数有一个参数,那么在编译的时候就会有一个缺省的转换操作:将该构造函数对应数据类型的数据转换为该类对象,如下面所示:
class MyClass
{
public:
MyClass( int num );
}
//.
MyClass obj = 10; //ok,convert int to MyClass
在上面的代码中编译器自动将整型转换为MyClass类对象,实际上等同于下面的操作:
MyClass temp(10);
MyClass obj = temp;
上面的所有的C++ explicit关键字相关的操作即是所谓的"隐式转换"。
http://developer.51cto.com/art/201002/183398.htm
7.export关键字
为了访问其他编译单元(如另一代码文件)中的变量或对象,对普通类型(包括基本数据类、结构和类),可以利用关键字extern,来使用这些变量或对象时;但是对模板类型,则必须在定义这些模板类对象和模板函数时,使用标准C++的关键字export(导出/出口/输出)
http://www.cnblogs.com/onlycxue/archive/2012/12/22/2828863.html
8.try{} catch{}关键字
捕获异常
http://blog.youkuaiyun.com/windhaunting/article/details/4735338/