#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 发布