override(c++11) 子类强制重写

override 关键字,可以避免派生类中忘记重写虚函数的错误

拷贝(复制)构造函数 & 重载赋值操作符

复制构造函数

参数为类对象本身的引用,用于根据一个已存在的对象复制出一个新的该类的对象,一般在函数中会将已存在对象的数据成员的值复制一份到新创建的对象中,若没有显示的写复制构造函数,则系统会默认创建一个复制构造函数,但当类中有指针成员时,由系统默认创建该复制构造函数会存在风险,具体原因请查询有关 “浅拷贝” 、“深拷贝”的文章论述

等号运算符重载

注意,这个类似复制构造函数,将=右边的本类对象的值复制给等号左边的对象,它不属于构造函数,等号左右两边的对象必须已经被创建若没有显示的写=运算符重载,则系统也会创建一个默认的=运算符重载,只做一些基本的拷贝工作。如果想禁用拷贝&复制功能,则需要显示的将类的拷贝构造函数和等号重载函数定义为私有

class DoubleBuffer{ protected: std::string name; private: DoubleBuffer(const DoubleBuffer&); DoubleBuffer& operator=(const DoubleBuffer&); }

函数重载 & 操作符重载

重载声明是指一个与之前已经在该作用域内声明过的函数或方法具有相同名称的声明,但是它们的参数列表和定义(实现)不相同。当调用一个重载函数或重载运算符时,编译器通过把您所使用的参数类型与定义中的参数类型进行比较,决定选用最合适的定义。选择最合适的重载函数或重载运算符的过程,称为重载决策。

可变参数

提供了一个用省略号表示的元运算符,使得可以声明表示模板参数列表,其语法如下:template<typename... Args>void show(Args... args){ }其中Args表示模板参数列表,args表示函数参数列表。

try { } catch (...) { }

声明

auto:用来实现自动类型推断decltype:将变量的类型指定为表达式的类型。decltyte (x) y; 将y设为与x相同的类型,其中x是一个表达式。

03-19 00:44