template< class Base, int TYPE_ID >
class GetClassEx: public Base
{
public:
GetClassEx(const long _ID):ID(_ID){}
//获取效果类型
virtual long GetType(){ return TYPE_ID; }
//获取效果ID
virtual long GetEffectID(){ return ID; }
private:
const long ID;
};template< int v >
class Test{};
template<>
class Test< enEFFECT_PROPERTY >: public GetClassEx<CTmpEffect, enEFFECT_PROPERTY>
{
public:
Test(const long ID):GetClassEx<CTmpEffect, enEFFECT_PROPERTY>(ID){}
};
本文介绍了一个使用C++模板元编程实现的通用类GetClassEx及其特化版本Test的例子。GetClassEx类模板用于获取特定的效果类型和ID,而Test特化版本则针对特定的效果属性进行了实现。
869

被折叠的 条评论
为什么被折叠?



