将一个类的接口转换成用户想要的另外一个接口,适配器模式使原来由于接口不兼容而不能一起工作的那些类可以一起工作。
#include<iostream>
#include<string>
using namespace std;
//抽象球员类
class player
{
protected:
string m_name;
public:
player(string str_name):m_name(str_name){}
virtual void attack(){};
virtual void defends(){};
};
//具体球员 前锋
class forwords:public player
{
public:
forwords(string str_name):player(str_name){}
void attack()
{
cout<<m_name<<"进攻"<<endl;
}
void defends()
{
cout<<m_name<<"防守"<<endl;
}
};
//中锋
class center:public player
{
public:
center(string str_name):player(str_name){}
void attack()
{
cout<<m_name<<"进攻"<<endl;
}
void defends()
{
cout<<m_name<<"防守"<<endl;
}
};
class yaoming
{
private:
string m_name;
public:
yaoming(string str_name):m_name(str_name){}
void attack_yaoming()
{
cout<<m_name<<"进攻"<<endl;
}
void defends_yaoming()
{
cout<<m_name<<"防守"<<endl;
}
};
class translate:public player
{
private:
yaoming *s;
public:
translate(string str_name):player(str_name)
{
s = new yaoming("姚明");
}
void attack()
{
s->attack_yaoming();
}
void defends()
{
s->defends_yaoming();
}
};
int main()
{
player *s = new forwords("A");
s->attack();
player *s1 = new forwords("B");
s1->attack();
player *m_yaoming = new translate("姚明");
m_yaoming->defends();
m_yaoming->attack();
return 0;
}