十三、适配器模式

举报
IM_STONE 发表于 2020/12/29 00:20:01 2020/12/29
1.4k+ 0 0
【摘要】 将一个类的接口转换成用户想要的另外一个接口,适配器模式使原来由于接口不兼容而不能一起工作的那些类可以一起工作。 #include<iostream> #include<string> using namespace std; //抽象球员类 class player { protected: string m_name; public: player(str...

将一个类的接口转换成用户想要的另外一个接口,适配器模式使原来由于接口不兼容而不能一起工作的那些类可以一起工作。

在这里插入图片描述

#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()
	{
		cout<<m_name<<"进攻"<<endl;
	}
	void defends()
	{
		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();
	}
	void defends()
	{
		s->defends();
	}
	
};
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;
}

  
 

文章来源: blog.csdn.net,作者:IM-STONE,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/doubleintfloat/article/details/86552719

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。