从单个类中调用匹配方法的最佳方法是什么,该类继承其他三个具有相同方法名的基类?我想一次调用这些方法,甚至不知道是否可能

template<typename T>
class fooBase()
{
    void on1msTimer();
    /* other methods that make usage of the template */
}

class foo
    : public fooBase<uint8_t>
    , public fooBase<uint16_t>
    , public fooBase<float>
{
    void onTimer()
    {
         // here i want to call the on1msTimer() method from each base class inherited
         // but preferably without explicitly calling on1msTimer method for each base class
    }
}

有什么办法吗?
谢谢

最佳答案

一次调用不可能一次获得所有三个成员函数。想象一下,这些成员函数将返回除void以外的其他值:您期望哪个返回值?

如果要调用所有三个基类的on1msTimer(),则需要显式调用它们:

void onTimer()
{
     fooBase<float>::on1msTimer();
     fooBase<uint8_t>::on1msTimer();
     fooBase<uint16_t>::on1msTimer();
}

Online demo

07-27 13:34