📄 testcallback.cpp
字号:
#include "callback.h"
//"扬声器"类
class Speaker:public CallBack
{
private:
int volume;
public:
Speaker(int v): volume(v) {}
void IncreaseVolume(int v) //增加音量成员函数
{
volume += v;
if(volume > 20) //"音量大于20"事件发生了
{
//调用注册在两事件上的回调函数
CallCallBack("音量改变了");
CallCallBack("音量大于20", &volume);
}
}
void DecreaseVolume(int v) //降低音量成员函数
{
volume -= v;
if(volume < 5) //"音量小于5"事件发生了
{
//调用注册在两事件上的回调函数
CallCallBack("音量改变了");
CallCallBack("音量小于5", &volume);
}
}
};
//"耳朵"类
class Ear : public CallBack
{
public:
static void Response(CallData callData) //对"音量改变"的反应
{
cout<<"音量改变了."<<endl;
}
void HighVoiceResponse(CallData callData) //对高音的反应
{
cout<<"喂!太吵了!现在音量是:"<<*((int *)callData)<<endl;
}
void LowVoiceResponse(CallData callData) // 对低音的反应
{
cout<<"啊!我听不清了。现在音量是:"<<*((int *)callData)<<endl;
}
};
void main(void)
{
Speaker s(10); //现在音量为10
Ear e;
//为事件对像s注册回调函数
s.AddCallBack("音量大于20",(CallBackFunction)&Ear::HighVoiceResponse,&e);
s.AddCallBack("音量小于5",(CallBackFunction)&Ear::LowVoiceResponse,&e);
s.AddCallBack("音量改变了",(CallBackStaticFunction)&Ear::Response);
s.IncreaseVolume(12); //将音量增加12,现在音量位22
s.DecreaseVolume(20); //将音量减少20,现在音量位2
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -