所谓菱形继承,就是一个父类有两个子类对象,然后又有一个类继承了这两个子类对象。
这样会导致该类中有两份数据,造成数据的浪费,一个解决办法就是使用虚继承。
让两个子类virtual继承父类,那么则会保留两个虚基类指针,在类继承这两个对象时,则会保留这个虚基类指针,同时数据也会只有一份,可以通过虚基类指针在虚基类表中找到数据的位置。
本文深入探讨了菱形继承导致的数据冗余问题,并介绍了虚继承作为一种解决方案,通过保留虚基类指针来避免重复数据,实现更高效的数据管理。
所谓菱形继承,就是一个父类有两个子类对象,然后又有一个类继承了这两个子类对象。
这样会导致该类中有两份数据,造成数据的浪费,一个解决办法就是使用虚继承。
让两个子类virtual继承父类,那么则会保留两个虚基类指针,在类继承这两个对象时,则会保留这个虚基类指针,同时数据也会只有一份,可以通过虚基类指针在虚基类表中找到数据的位置。
545

被折叠的 条评论
为什么被折叠?