C++11里面有许多关键词,以前稍微学过,但是不多用。这几天看一些代码,重温一下这些关键词。
位于函数声明尾部
如
datatype function_name() keyword;
const
const关键词表示该函数不修改类成员变量。
overide
overide表示该函数覆盖掉父类同签名函数的声明。没有overide关键词时,父类的同名函数被hide,需要使用
using fatherClass::function_name;
才能调用父类声明的函数。
= 0
该关键词与virtual一起使用,指明该函数为纯虚函数,子类必须定义。
= default
在C++11中,为了解决特殊成员函数的问题,例如程序员定义的默认构造函数X::X() {}效率并不如编译器自动生成的默认构造函数,引入了defaulted特殊成员函数。在特殊成员函数后面加上= default后,编译器便会自动生成较高效率的默认构造函数。
C++中类的特殊成员函数有:Default constructor, Copy constructor, Move constructor (C++11), Copy assignment operator, Move assignment operator (C++11), Destructor.
= delete
在C++11中,为了解决成员函数禁用的问题,引入了delete关键词。成员函数禁用的情况主要有两种:(1)我们想禁止默认复制构造、默认复制赋值;(2)我们不希望子类调用父类的某些函数。