C++虚拟与否?

shi*_*zle 1 c++ virtual inheritance

为什么要在具有两个以上级别的继承层次结构中声明非虚函数?有人可以给我一个例子吗?

我知道区别是什么和发生了什么,但我无法真正理解为什么以及何时想要这样做.

Oli*_*rth 6

从语义的角度来看:所以它不能被覆盖.

从实际的角度来看:如果没有虚函数,则不需要vptr,因此每个实例占用的内存略少.另外,正如@Billy在评论中所说,这意味着不会间接调用成员函数.