override 关键字,能够避免派生类中忘记重写虚函数的错误c++
参数为类对象自己的引用,用于根据一个已存在的对象复制出一个新的该类的对象,通常在函数中会将已存在对象的数据成员的值复制一份到新建立的对象中,若没有显示的写复制构造函数,则系统会默认建立一个复制构造函数,但当类中有指针成员时,由系统默认建立该复制构造函数会存在风险,具体缘由请查询有关 “浅拷贝” 、“深拷贝”的文章论述ide
注意,这个相似复制构造函数,将=右边的本类对象的值复制给等号左边的对象,它不属于构造函数,等号左右两边的对象必须已经被建立 若没有显示的写=运算符重载,则系统也会建立一个默认的=运算符重载,只作一些基本的拷贝工做。 若是想禁用拷贝&复制功能,则须要显示的将类的拷贝构造函数和等号重载函数定义为私有函数
class DoubleBuffer{ protected: std::string name; private: DoubleBuffer(const DoubleBuffer&); DoubleBuffer& operator=(const DoubleBuffer&); }
指针
重载声明是指一个与以前已经在该做用域内声明过的函数或方法具备相同名称的声明,可是它们的参数列表和定义(实现)不相同。 当调用一个重载函数或重载运算符时,编译器经过把您所使用的参数类型与定义中的参数类型进行比较,决定选用最合适的定义。选择最合适的重载函数或重载运算符的过程,称为重载决策。c++11
提供了一个用省略号表示的元运算符,使得能够声明表示模板参数列表,其语法以下: template<typename... Args> void show(Args... args){ } 其中Args表示模板参数列表,args表示函数参数列表。code
try { } catch (...) { }
对象
auto:用来实现自动类型推断 decltype:将变量的类型指定为表达式的类型。 decltyte (x) y; 将y设为与x相同的类型,其中x是一个表达式。作用域