基础备忘

1.虚函数不能被内联。
   因为“内联”意味着“在编译时刻用被调用函数的函数体来代替被调用的函数”。但是“虚函数”意味着“运行时刻决定被调用的是哪一个函数”。

2.多重继承一般要求基类为虚基类。
   不是虚基类的话,如果一个派生类有多于一条通向基类的继承路径,基类的数据成员会被复制到每一个继承类的对象里,继承类与基类间的每条路径都有一个拷贝。把基类定义为虚基类则可以消除这种重复。
   class A {};
   class B : virtual public A {};
   class C : virtual public A {};
   class D : public B, public C {};

原文地址:https://www.cnblogs.com/codingthings/p/4294609.html