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