#include<iostream> #include<string> using namespace std; class china; class india; class country; class mediator { public: china *chin; india *indi; mediator(){}; mediator(china *chin,india *indi); void send(string msg,country *c); }; class country { public: mediator medi; virtual void sendmsg(){}; virtual void receive(){}; }; class china:public country { public: void sendmsg(string msg) { medi.send(msg,this); } void receive(string msg) { cout<<"china recv msg is:"<<msg<<endl; } }; class india:public country { public: void sendmsg(string msg) { medi.send(msg,this); } void receive(string msg) { cout<<"india recv msg is:"<<msg<<endl; } }; mediator::mediator(china *chin,india *indi) { this->chin = chin; this->indi = indi; }; void mediator::send(string msg,country *c) { if(c == (country*)chin) { indi->receive(msg); } else { chin->receive(msg); } }
#include"mediator.cpp" int main() { china *c = new china(); india *i = new india(); mediator m(c,i); c->medi = m; i->medi = m; c->sendmsg("i am china"); cout<<"==============="<<endl; i->sendmsg("i am india"); return 0; }
mediator
最新推荐文章于 2023-11-13 19:00:00 发布