- 論壇徽章:
- 0
|
原帖由 mistletoezju 于 2007-4-16 16:33 發(fā)表
繼承+消息, 好處在哪
沒想到那么久的貼子還被拉了起來。
簡單的示例,主要還是看個人喜好...
- 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;
- }
- }
- ...
復(fù)制代碼
[ 本帖最后由 savageranthony 于 2007-4-17 00:54 編輯 ] |
|