`
javahigh1
  • 浏览: 1223219 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

用template来判断类继承的关系

 
阅读更多

能自动判断一个类是不是从另外一个类继承下来的:

template<typename T , typename TBase> class TIsDerived
{
public:
static int t(TBase* base)
{
return 1;
}
static char t(void* t2)
{
return 0;
}

enum
{
Result = ( sizeof(int) == sizeof(t( (T*)NULL) ) ),
};
};

用途:

bool AISDerviedFromB = TIsDerived<ClassA, ClassB>::Result ;
如果ClassA是从ClassB派生的,那么 AISDerviedFromB 为true, 否则为false

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics