#ifndef TARGET_H
#define TARGET_H
class Target
{
public:
/** Default constructor */
Target();
/** Default destructor */
virtual ~Target();
virtual void Request()=0;
protected:
private:
};
#endif // TARGET_H
#include "Target.h"
Target::Target()
{
//ctor
}
Target::~Target()
{
//dtor
}
#ifndef ADAPTER_H
#define ADAPTER_H
#include "Target.h"
#include "Adaptee.h"
class Adapter : public Target
{
public:
/** Default constructor */
Adapter();
/** Default destructor */
virtual ~Adapter();
void Request();
protected:
private:
Adaptee m_Adaptee;
};
#endif // ADAPTER_H
#include "Adapter.h"
Adapter::Adapter()
{
//ctor
}
Adapter::~Adapter()
{
//dtor
}
void Adapter::Request()
{
m_Adaptee.SpecialRequest();
}
#ifndef ADAPTEE_H
#define ADAPTEE_H
class Adaptee
{
public:
/** Default constructor */
Adaptee();
/** Default destructor */
virtual ~Adaptee();
void SpecialRequest();
protected:
private:
};
#endif // ADAPTEE_H
#include "Adaptee.h"
#include <iostream>
using namespace std;
Adaptee::Adaptee()
{
//ctor
}
Adaptee::~Adaptee()
{
//dtor
}
void Adaptee::SpecialRequest()
{
cout<<"Adaptee::SpecialRequest"<<endl;
}
#include <iostream>
#include "Target.h"
#include "Adapter.h"
using namespace std;
int main()
{
Target* m_pAdapter=new Adapter();
m_pAdapter->Request();
delete m_pAdapter;
m_pAdapter=NULL;
return 0;
}