// 添加类的虚函数
event += newDelegate(baseUnlinkClass, &BaseUnlinkClass::virFunc);
event += newDelegate(derivedClass, &DerivedClass::virFunc);
// 注意在多态下,使用基类指针时,函数指针要用基类的函数指针,不能用派生类的
// 但是在调用时会响应多态,也就是会调用派生类的虚函数
event += newDelegate((BaseUnlinkClass*)derivedClass, &BaseUnlinkClass::virFunc);
// 添加类的静态成员函数
event += newDelegate(&DerivedClass::staticFunc);
// 添加模板函数
event += newDelegate(TFunc
// 触发事件
event(1, 2);
cout << endl;
// 去掉函数
event -= newDelegate(func);
// 去掉baseUnlinkClass所有的函数
event.clear(baseUnlinkClass);
// 去掉derivedClass所有的函数
// 注意静态成员函数staticFunc不会去掉
event.clear(derivedClass);
//event.clear(normalClass);
// 错误调用,normalClass不是IDelegateUnlink的派生类
// 不能使用clear去掉自身的函数
// 应该使用如下方法
event -= newDelegate(normalClass, &NormalClass::normalFunc);
// 触发事件
event(2, 3);
cout << endl;
return 0;
}
摘自:gouki04的专栏