#include "stdafx.h"
#include <iostream>
class CAdaptee1
{
public:
void SpecificPrint()
{
std::cout << "specific print" << std::endl;
}
};
class CAdaptee2
{
public:
void SpecificPrint2()
{
std::cout << "specific print 2" << std::endl;
}
};
class CAdapter
{
public:
virtual void Print() = 0;
};
class CAdapter1 : public CAdapter
{
public:
virtual void Print()
{
m_Adaptee.SpecificPrint();
}
private:
CAdaptee1 m_Adaptee;
};
class CAdapter2 : public CAdapter
{
public:
virtual void Print()
{
m_Adaptee.SpecificPrint2();
}
private:
CAdaptee2 m_Adaptee;
};
int _tmain(int argc, TCHAR argv[])
{
CAdapter1 Adapter1;
CAdapter2 Adapter2;
Adapter1.Print();
Adapter2.Print();
return 0;
}