// Adapter. cpp: defines the entry point of the console application.
//
# Include "stdafx. H"
# Include <iostream>
Using namespace STD;
Class target
{
Public:
Target (){}
Virtual ~ Target (){}
Virtual void request () = 0;
};
Class adaptee
{
Public:
Adaptee (){}
Virtual ~ Adaptee (){}
Void specialrequset ()
{
Cout <"specialrequset of adaptee" <Endl;
}
};
//////////////////////////////////////// //////////////////////
Class adapter_class: Private adaptee, public target
{
Public:
Adapter_class ()
{
Cout <"Construction of adapter_class" <Endl;
}
Virtual ~ Adapter_class ()
{
Cout <"destruction of adapter_class" <Endl;
}
Void request ()
{
Specialrequset ();
}
};
//////////////////////////////////////// //////////////////////
Class adpater_object: public target
{
Public:
Adpater_object (adaptee * m_p): m_padaptee (m_p)
{
Cout <"Construction of adapter_objetc" <Endl;
}
Virtual ~ Adpater_object ()
{
Delete m_padaptee;
M_padaptee = NULL;
Cout <"destruction of adapter_class" <Endl;
}
Void request ()
{
M_padaptee-> specialrequset ();
}
PRIVATE:
Adaptee * m_padaptee;
};
Int _ tmain (INT argc, _ tchar * argv [])
{// Client1
Target * t = new adapter_class ();
T-> request ();
Delete T;
// Client2
Adaptee * P = new adaptee ();
Target * T1 = new adpater_object (P );
T1-> request ();
Return 0;
}