利用多继承使target类拥有了Adpatee的功能
#include <cstdlib>
#include <iostream>
using namespace std;
class Target
{
public:
virtual ~Target(){cout<<"Target 基类析构"<<endl;}
virtual void TargetDo(){cout<<"Target do sth."<<endl;}
virtual void AdpateeDo() = 0;
};
class Adpatee
{
public:
virtual ~Adpatee(){cout<<"Adpatee 基类析构"<<endl;}
void Do(){cout<<"Adpatee do sth."<<endl;}
};
class Adpater:public Target,private Adpatee
{
public:
virtual ~Adpater(){cout<<"Adpater 子类析构"<<endl;}
virtual void AdpateeDo(){Adpatee::Do();}
};
void DoUseTarget(Adpater* pAdp)
{
pAdp->TargetDo();
pAdp->AdpateeDo();
}
int main(int argc, char *argv[])
{
Adpater* pAdp = new Adpater;
DoUseTarget(pAdp);
delete pAdp;
system("PAUSE");
return EXIT_SUCCESS;
}
本文通过一个具体的C++代码示例介绍了如何使用多继承实现适配器模式,使目标类能够利用适配者类的功能。该模式下,适配器类作为目标类和适配者类的子类,实现了将适配者接口转换为目标类接口的目标。
267

被折叠的 条评论
为什么被折叠?



