1.任何构造函数之外的非静态函数都可以是虚函数,virtual只能出现在类内部的声明语句之前而不能用于类外部的函数定义,如果基类把一个函数声明成虚函数,则该函数在派生类中隐式地也是虚函数。
2.派生类能访问基类的public,protected成员,而不能访问私有成员。
3.如果派生类没有覆盖其基类中的某个虚函数,则该虚函数的行为类似于其他的普通成员,派生类会直接继承其在基类中的版本。
4.派生类必须使用基类的构造函数来初始化它的基类成员,通过构造函数初始化列表来将实参传递给基类构造函数。
5.首先初始化基类的部分,然后按照声明的顺序依次初始化派生类的成员。
6.派生类的声明包含类名但是不包括它的派生列表,派生列表以及与定义有关的其他细节必须与类的主体一起出现。
7.如果我们想将某个类用作基类,则该类必须已经定义而非仅仅声明,所以一个类不能派生它本身。
8.防止继承:c++11标准:在类名后跟关键字final
9.当我们用一个派生类对象为一个基类对象初始化或赋值时,只有该派生类对象中的基类部分会被拷贝,移动或赋值,它的派生类部分将会被忽略。