直接上代码:
TypeidLayer.h
//
// TypeidLayer.h
// Demo
//
// Created by KodeLove on 9/15/13.
//
//
#ifndef __Demo__TypeidLayer__
#define __Demo__TypeidLayer__
#include "cocos2d.h"
USING_NS_CC;
class TypeidLayer : public CCLayer {
private:
virtual bool init();
public:
CREATE_FUNC(TypeidLayer);
};
#endif /* defined(__Demo__TypeidLayer__) */
TypeidLayer.cpp
//
// TypeidLayer.cpp
// Demo
//
// Created by KodeLove on 9/15/13.
//
//
#include "TypeidLayer.h"
/**
* 执行结果如下:
*
* t_iVar 是整型
* ----------------------------------------
* t_oLyrTypeid 是 TypeidLayer 类型
* ----------------------------------------
* ----------------------------------------
* *t_pLyrTypeid 是 TypeidLayer 类型
*/
bool TypeidLayer::init() {
if (!CCLayer::init()) {
return false;
}
int t_iVar = 123;
if (typeid(t_iVar) == typeid(int)) {
printf("t_iVar 是整型\n");
}
printf("----------------------------------------\n");
TypeidLayer t_oLyrTypeid;
if (typeid(t_oLyrTypeid) == typeid(TypeidLayer)) {
printf("t_oLyrTypeid 是 TypeidLayer 类型\n");
}
if (typeid(t_oLyrTypeid) == typeid(CCLayer)) {
printf("t_oLyrTypeid 是 CCLayer 类型\n");
}
if (typeid(t_oLyrTypeid) == typeid(CCObject)) {
printf("t_oLyrTypeid 是 CCObject 类型\n");
}
printf("----------------------------------------\n");
TypeidLayer* t_pLyrTypeid = new TypeidLayer();
if (typeid(t_pLyrTypeid) == typeid(TypeidLayer)) {
printf("t_pLyrTypeid 是 TypeidLayer 类型\n");
}
if (typeid(t_pLyrTypeid) == typeid(CCLayer)) {
printf("t_pLyrTypeid 是 CCLayer 类型\n");
}
if (typeid(t_pLyrTypeid) == typeid(CCObject)) {
printf("t_pLyrTypeid 是 CCObject 类型\n");
}
if (typeid(t_pLyrTypeid) == typeid(int)) {
printf("t_pLyrTypeid 是 int 类型\n");
}
printf("----------------------------------------\n");
if (typeid(*t_pLyrTypeid) == typeid(TypeidLayer)) {
printf("*t_pLyrTypeid 是 TypeidLayer 类型\n");
}
if (typeid(*t_pLyrTypeid) == typeid(CCLayer)) {
printf("*t_pLyrTypeid 是 CCLayer 类型\n");
}
if (typeid(*t_pLyrTypeid) == typeid(CCObject)) {
printf("*t_pLyrTypeid 是 CCObject 类型\n");
}
delete t_pLyrTypeid;
return true;
}