我有以下代码使用多重继承。目的是在派生类使用两个接口,一个:哪个基类调用派生重写方法?
struct InterfaceA
{
virtual void register_stuff();
virtual void on_state_changed(const State state) = 0;
};
struct InterfaceB
{
virtual void register_stuff();
virtual void on_state_changed(const State state) = 0;
};
struct Derived : InterfaceA, InterfaceB
{
void register_stuff() override
{
InterfaceA::register_stuff();
InterfaceB::register_stuff();
}
void on_state_changed(const State state) override
{
// how can I know who is responding?
}
};
注册的界面会造成on_state_changed
的异步调用。是否有可能辨别哪个接口正在调用它?
如果你需要这些信息,为什么不添加一个参数来告诉你你需要什么? –
或者干脆不要使用多重继承。 – Ron
我觉得这个[文章](http://www.cprogramming.com/tutorial/multiple_inheritance.html)在陷阱小标题下有一些这方面的信息。 – Mekicha