C++のローカルクラス
1308 ワード
/********************************************************************
file name : CLK.h
author : Clark/
created : 2011-11-12
purpose : C++
:
1, Template
2,
3,
*********************************************************************/
#include <iostream>
using namespace std;
class Interface
{
public:
virtual ~Interface(){}
virtual void Show()
{
cout<<"Interface"<<endl;
}
};
//
class Adapter
{
public:
template<class T>
Interface* MakeAdapter(T date)
{
class LocalInterface: public Interface
{
public:
LocalInterface(T _Obj):m_Obj(_Obj){}
~LocalInterface(){}
virtual void Show()
{
cout<<"LocalInterface"<<m_Obj<<endl;
}
private:
T m_Obj;
};
return new LocalInterface(date);
}
};
void main()
{
A a;
Interface* pInterface = a.MakeAdapter(327);
pInterface->Show();
delete pInterface;
system("pause");
}