- 论坛徽章:
- 0
|
原帖由 mistletoezju 于 2007-4-16 16:33 发表
继承+消息, 好处在哪
没想到那么久的贴子还被拉了起来。
简单的示例,主要还是看个人喜好...
- class MyHandle : public AHandle {
- public:
- MyHandle();
- virtual ~MyHandle();
- virtual void MessageReceived(AMessage *msg);
- virtual void Bombing();
- private:
- ...
- }
- ...
- void
- MyHandle::Bombing()
- {
- AMessage reply;
- if (SendMessage(fSolider, AMessage('redy'), &reply) != A_OK ||
- reply.HasBool("Yes, sir.") == false) {
- Tell(fSolider, "What are you doing ?");
- } else if (!fCommandReceived) {
- Tell(fChief, "Waiting for your command, sir.");
- } else {
- AHandle::Bombing();
- }
- }
- void
- MyHandle::MessageReceived(AMessage *msg)
- {
- AMessage bombMsg;
- switch(msg->what) {
- case 'bomb':
- if ((msg->FindMessage("command", &bombMsg) == A_OK ?
- (bombMsg.AddBool("fromCaptain", true),
- SendMessage(fSoldier, bombMsg) == A_OK) :
- false)) return;
- AHandle::MessageReceived(msg);
- break;
- ...
- default:
- AHandle::MessageReceived(msg);
- break;
- }
- }
- ...
复制代码
[ 本帖最后由 savageranthony 于 2007-4-17 00:54 编辑 ] |
|