锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
m_pBtn -> 00xx();
template <class T>
class UIHander: public T

{
};
鐒跺悗鎶婂綋鍓嶆寚閽堟浛鎹㈣繘鍘匯傘?
template <class T>
void ReplaceType2Type(T* & pData)

{
//璁板綍鍘熷 pData
.
pData = new UIHander<T>;
}
. pData ->Function(); //絀?
class UIHander: public T

{
public:
virtual void CallHandle()
{say錛?/span>"disable"錛墋
};
pData ->Function1();
pData ->Function2();
pData ->Function3();
UIHander::CallHandle()
鍛?.涓嶇煡閬撹繖縐嶆濊礬鑳戒笉鑳借蛋閫氥傘傘?br>
#include <iostream>
using namespace std;
class MyButton

{
public:
MyButton():x(0),y(0)
{}
virtual ~MyButton()
{}
public:
void SetXY(int p1,int p2)
{
x = p1;
y = p2;
}
void Func1()
{
cout <<"x = " << x<< " " <<"y = " <<y <<endl;
}
private:
int x;
int y;

};
template <class T>
class UIHandle:public T

{
void SaySomthing()
{}
};
template <class T>
void HandleFunction(T*& pData)

{
//-淇濆瓨鍏堜笉綆?/span>
pData = new UIHandle<T>;
}
int main()

{
//MyButton myBtn;
MyButton* pButton = new MyButton;
pButton ->SetXY(100,99);
//cout << "Hello world!" << endl;
pButton ->Func1(); //杈撳嚭 100錛?9
HandleFunction(pButton);
pButton ->Func1(); //鍙樻垚絀虹被浜?jiǎn)銆傘傝緭鍑?nbsp;0.0
//-鑰冭檻鐨勬儏鍐墊槸榪欓噷銆傘傘傘傘侳unc1 鑳戒笉鑳介氳繃浠涔堟柟娉曞疄鐜板埌 璋冪敤 SaySomthing() {}
return 0;
}
欏轟究鐗㈤獨(dú)涓嬨傘傘俹pera涓嬭繖涓猙log鎬庝箞涓嶈兘鎺掔増 T.T
]]>