假设B是A的某种关系,那么我们说A是基类,B是A的派生类。继承的本质是代码的复用,也就是说B会拥有A除了构造函数、析构函数之外的所有代码。基类的指针可以指向派生类,反过来却不行。当基类和派生类拥有同名方法的时候,一般是派生类将基类的方法隐藏。但基类同名方法为虚函数时,则转变为覆盖。当发生多重继承的时候,有可能会造成菱形继承,这个时候代码就会被派生类重复获得。于是引入虚继承。