什么情况下需要使用虚基类和虚函数?解决思路

什么情况下需要使用虚基类和虚函数?
RT,请大家帮忙回答下,我一直对虚函数的用途理的不太清楚!

------解决方案--------------------
b和c继承自a.

d同时继承自b和c.

这时就需要虚基类.
防止a的成员在d里出现两次.