【发布时间】:2011-12-13 22:48:14
【问题描述】:
在 C++ 中对假接口使用纯虚方法,当一个具体类派生自两个具有相同方法声明的“接口”时会发生什么?例如X子类Iaaa和Ibbb并实现一个方法virtual void setVisible(bool);。
Iaaa 和 Ibbb 没有方法体是否比更经典的菱形继承场景更容易/更好,并让X::setVisible 成为 Iaaa::setVisible 的实现和Ibbb::setVisible?
我想用 C++ 来表达这个问题的一种更具体的方式是“当一个类使用 MI 派生自两个对纯虚方法具有相同签名的类时会发生什么”。
【问题讨论】:
-
你试过了吗?你看到了什么行为?
-
"Iaaa 和 Ibbb 没有方法体这一事实是否让事情变得更容易/更好" 它从来没有。为什么会这样?
标签: c++ multiple-inheritance virtual-functions overriding