接口是不会出现二义性的。
先声明一个抽象类作为基类(爷爷类只声明成员变量,不定义成员函数),然后派生出两个子类,使用虚继承(该子类为“父”类,只声明成员函数,不声明新的成员),则可从这两父类再派生出一个子类,继承这两个父类的成员函数(接口)。
即使在两个父类中有同样的函数,只需要声明为纯虚函数,然后再在子类中定义(即实现接口)也不会出现问题。当一个类继承了这两个类时,只会继承相同虚函数中的一个。
接口是不会出现二义性的。
先声明一个抽象类作为基类(爷爷类只声明成员变量,不定义成员函数),然后派生出两个子类,使用虚继承(该子类为“父”类,只声明成员函数,不声明新的成员),则可从这两父类再派生出一个子类,继承这两个父类的成员函数(接口)。
即使在两个父类中有同样的函数,只需要声明为纯虚函数,然后再在子类中定义(即实现接口)也不会出现问题。当一个类继承了这两个类时,只会继承相同虚函数中的一个。