与虚拟成员职能相反,我需要一种解决办法,即每个级别履行的衍生职能可以登记,然后由基类进行。 (不仅是最衍生的执行)
为了做到这一点,我正在考虑为衍生产品提供一种机制,以登记其功能的基类,例如在衍生型建筑商期间。
不过,我对成员职能点人的论点感到不安。 我认为,Derived来自基地,应当自动投放this
的点。
www.un.org/spanish/ecosoc 能否做到这一点,与我正在尝试的或我是否需要使用静态成员职能接近:void*
和static_cast
?。
class Base
{
protected:
typedef void (Base::*PrepFn)( int n );
void registerPrepFn( PrepFn fn ) {};
}
class Derived : public Base
{
Derived() {
registerPrepFn( &Derived::derivedPrepFn );
};
void derivedPrepFn( int n ) {};
}
Compiler error:
error: no matching function for call to Derived::registerPrepFn(void (Derived::*)(int))
note: candidates are: void Base::registerPrepFn(void (Base::*)(int))