mp09.c
来自「开放源码的编译器open watcom 1.6.0版的源代码」· C语言 代码 · 共 68 行
C
68 行
#include "fail.h"
class Base {
public:
Base() {}
virtual ~Base() {}
};
class A : public Base {
public:
A() {}
~A() {}
virtual int OverriddenFunc( Base * ) = 0;
};
typedef int (A::*Callback)( Base * );
class Other : public Base {
public:
Other() {}
~Other() {}
SetCallback( Callback func );
private:
Callback _callback;
};
class B : public A {
public:
B() {}
~B() {}
Register();
private:
Other _other;
};
class C : public B {
public:
C() {}
~C() {}
virtual int OverriddenFunc( Base * ) { return 0; }
};
B::Register()
/***********/
{
_other.SetCallback( (Callback)OverriddenFunc );
}
Other::SetCallback( Callback func )
/*********************************/
{
_callback = func;
}
int main() {
C c;
c.Register();
_PASS;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?