c++关键字---大集合
其他
2020-03-27 10:25:31
阅读次数: 0
本编文章主要是将作者在学习c++中遇到的关键字进行了总结,作者对比较陌生的关键字进行了解释
alignas 设置类和struct的字节对齐方式 默认取值为:0 1 2 4 6 8
alignof 区分sizeof(),alignof得到字节对齐的字节数
ISO646标准支持的运算符:
asm 允许在c/c++的程序中直接插入汇编指令,并且可以插在任何位置
assert 运行时断言,assert的作用是先计算表达式expression,如果其值为假(即为0),那么它先向 stderr打印一条错误的信息,然后通过调用abort来中止运行
auto
bool
break
case 和switch一起使用
catch 和try一起使用,表示异常
char 在linux平台下等价于 unsigned char 在window平台下等价于signed char
char16_t char32_t unicode编码
class 类
concept
const 不变性
constexpr 是“常量表达式”,在编译期可求值的表达式。最基础的常量表达式就是字面值或全局变量/函数的地址或sizeof等关键字。constexpr所修饰的变量一定是编译期可求值的,所修饰的函数在所有参数是constexpr是,一定会返回constexpr。还可以修饰类的构造函数,但是,constexpr构造函数必须有一个空的函数体,即所有成员变量的初始化都放到初始化函数列表中。
const_cast 用来修改类型的const或volatile,使用该运算方法可以返回一个指向非常量的指针(或引用)指向b1,就可以通过该指针(或引用)对它的数据成员任意改变。 用法: const_cast<type_id> (expression) 该运算符用来修改类型的const或volatile属性。除了const 或volatile修饰之外, type_id和expression的类型是一样的。 一、常量指针被转化成非常量的指针,并且仍然指向原来的对象; 二、常量引用被转换成非常量的引用,并且仍然指向原来的对象; 三、const_cast一般用于修改底指针。如const char *p形式。
continue
decltype 用法: 返回值 decltype(表达式) 返回值的类型是表达式参数的类型
如果这个表达式是函数,decltype给出的类型为函数返回值的类型
如果表达式是一个左值类型,那么decltype给出的类型为表达式左值引用类型
decltype不会执行表达式而auto会执行表达式
跟踪返回类型 函数的返回值类型一般是放在函数名的前面,但是c++11可以将函数的返回值类型放在函数声明的后面,同时需要auto替代返回类型 eg: template<class U, class V> auto Multiply(U u, V v) -> decltype(u*v) { return u*v; }
default
delete
do
double
dynamic_cast 将一个基类对象指针(或引用)转换到继承类指针,dynamic_cast会根据基类指针是否真正指向继承类指针来做相应处理 用法: dynamic_cast (expression) 该运算符把expression转换成type_id类型的对象,type_id必须是类的指针、类的引用或者void* 如果 type-id 是类指针类型,那么expression也必须是一个指针,如果type-id 是一个引用,那么 expression 也必须是一个引用。
else
enum
普通用法: enum Day {Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday};
强枚举类型(使用enum class语法来声明): enum class enumeration{ value1, value2, value3 = 100, value4 }; 另外枚举类型所使用的类型为默认为int类型,也可指定为其他类型: enum class enumeration:short{ value1, value2 };
explicit 可以抑制内置类型的强制转换,因此在类的构造函数中,应该尽可能地使用关键字explicit,防止不必要地隐式转换
export
extern 用在变量或者函数的声明前,用来说明“此变量/函数是在别处定义的,要在此处引用”
false
float
for
friend
goto
if
Inline 放在函数定义的前面,使函数成为内联函数,建议编译器直接调用函数体来替代函数调用
int
Long
mutable
namespace 命名空间
new
noexcept 告诉编译器,函数中不会发生异常,如果在运行是,noexcept函数向外抛出了异常(如果函数内部捕捉了异常并完成处理,这种情况不算是抛出异常),程序会直接中止,调用std::terminate()函数,该函数内部会调用std::abort()中止程序
nullptr 空指针 在c++11中是一个类型
operator 重载
private
protected
public
register 告诉编译器将变量放到寄存器中
reinterpret_cast 强制类型转换符 语法: reinterpret_cast (expression) Type-id必须是一个指针、引用、算术类型、函数指针或者成员指针。它可以把一个指针转换成一个整数,也可以把一个整数转换成指针。 用法: 该操作符修改了操作数类型,但仅仅是重新解释了给出的对象的比特模型而没有进行二进制转换
requires
return
short
signed
sizeof 查询对象或类型的大小
static static修饰普通变量函数 static放在类中进行修饰属性和方法
static_assert 编译期间实现断言,是静态断言。不会生成目标代码,不会造成任何的性能损失 语法: static_assert(常量表达式,要提示的字符串); 如果第一个参数常量的表达式是false,会产生一条编译错误,错误的位置就是static_assert语句所在的行,第二个参数就是错误提示字符串。然后通过调用abort()来中止运行
static_cast 功能是把一个表达式转换为某种类型,但是运行时类型检查来保证转化的安全性 语法: static_cast<type_id>(expression) 把expression类型转换为type_id类型
struct
switch
template
this
thread_local
Throw 和try、catch一起用
true
try
typedef 起别名
typeid
typename
union
unsigned
using 在c++11中可以使用using来替代typedef
virtual 虚函数
void
volatile 作用就是防止编译器对代码进行优化
wchar_t 在windows编程下用的多
while
发布了38 篇原创文章 ·
获赞 49 ·
访问量 6948
转载自 blog.csdn.net/Xiao_Jie123/article/details/104122259