CyberLogic的专栏

嵌入式-多媒体-核驱动

用template来判断类继承的关系

用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

阅读更多
文章标签: class null
上一篇Code Exception Safe Functions
下一篇STL序列式容器中删除元素的方法和陷阱一
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭