1:分析菱形继承的问题
菱形继承是指一个基类A派生出两个派生类B,C,再有两个派生类B,C共同生成一个派生类D。由于D是继承B和C,而B和C又是继承自A,所以D中的_a不确定是来自B还是C,产生了二义性,因为B和C中的_a都是来自A,其实两个_a是一个,但是因为B和C各自继承,所以有两份,产生了数据冗余。
2:剖析虚继承是怎么解决二义性和数据冗余
1:分析菱形继承的问题
菱形继承是指一个基类A派生出两个派生类B,C,再有两个派生类B,C共同生成一个派生类D。由于D是继承B和C,而B和C又是继承自A,所以D中的_a不确定是来自B还是C,产生了二义性,因为B和C中的_a都是来自A,其实两个_a是一个,但是因为B和C各自继承,所以有两份,产生了数据冗余。
2:剖析虚继承是怎么解决二义性和数据冗余