读书人

怎么判断一个对象是不是类对象

发布时间: 2012-04-06 12:22:24 作者: rapoo

如何判断一个对象是不是类对象。
实现一个函数check()判断一个对象是不是类对象。
template <typename T>
bool check(T)
{
if(是否是类对象)
{
return ture;
}
else
{
return false;
}
}
测试
class obj;
int ia;
check(obj);
check(ia);



[解决办法]

探讨
C++ Template一书中是这样实现的,我用VS2005没编译通过。
template <typename T>
class IsClassT
{
private:
typedef char One;
typedef struct { char a[2]; } Two;
template <typename C> static One test(int C::*);
template <typename C> static Two test(...);
public:
enum{ Yes = sizeof(IsClassT <T>::test <T>(0)) == 1 };
enum{ No = !Yes };

};

template <typename T>
void check…

[解决办法]
C++ Templates还讲了另外一种实现吧。继续看。
[解决办法]
路过,学习了~~

探讨
C++ Template一书中是这样实现的,我用VS2005没编译通过。
template <typename T>
class IsClassT
{
private:
typedef char One;
typedef struct { char a[2]; } Two;
template <typename C> static One test(int C::*);
template <typename C> static Two test(...);
public:
enum{ Yes = sizeof( test<T>(0) ) == 1 }; //这里把类作用域去掉就编译过了...不知道为什么..??
enum{ No = !Yes };

};

template <typename T>
void check…

读书人网 >C++

热点推荐