⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 adapter.cpp

📁 自己写的c++实现的headfirst中的设计模式
💻 CPP
字号:
/* 适配器
 */

#include <iostream>

using namespace std;

class Duck	//修饰目标必须virtual
{
public:
	virtual void say_hello()
	{
		cout << "Duck language: Gua Gua~"<<endl;
	}
	
	virtual void say_byebye()
	{
		cout << "Duck language: Gu Gu Ga~"<<endl;
	}
};

class Cow
{
public :
	void say_hello()
	{
		cout <<"Cow language: Mu~~~"<<endl;
	}
	
	void say_byebye()
	{
		cout <<"Cow language: En En ~"<<endl;
	}
};

void DuckHello(Duck& d)
{
	d.say_hello();
}

void DuckBye(Duck& d)
{
	d.say_byebye();
}

class Translator:public Duck	//adapter
{
private:
	Cow* c;
	Translator();
	
public:
	Translator(Cow& tmp):c(&tmp){}
	
	void say_hello()
	{
		c->say_hello();
	}
	
	void say_byebye()
	{
		c->say_byebye();
	}
};

void adapter_main()
{
	Duck d;
	Cow c;
	
	DuckHello(d);
	DuckBye(d);
	
	Translator dc(c);
	DuckHello(dc);
	DuckBye(dc);

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -