模拟 mfc 类型识别
来源:互联网 发布:正大软件学校 编辑:程序博客网 时间:2024/05/21 14:47
#include <STDLIB.H>
#include <afx.h>
struct RuntimeClass {
public:
char* pszClassName;
RuntimeClass* pBase;
};
class CTest {
virtual IsKindOf(RuntimeClass& rt){
RuntimeClass *prt = &rtCTestInfo;
for(;prt != NULL; prt = prt->pBase){
if(prt == &rt)
return TRUE;
}
return FALSE;
}
public:
static RuntimeClass rtCTestInfo;
};
RuntimeClass CTest::rtCTestInfo = {"CTest", NULL};
class CBase {
virtual IsKindOf(RuntimeClass& rt){
RuntimeClass *prt = &rtCBaseInfo;
for(;prt != NULL; prt = prt->pBase){
if(prt == &rt)
return TRUE;
}
return FALSE;
}
public:
static RuntimeClass rtCBaseInfo;
};
RuntimeClass CBase::rtCBaseInfo = {"CBase", NULL};
class CDevice:public CBase{
public:
virtual BOOL IsKindOf(RuntimeClass& rt){
RuntimeClass *prt = &rtCDeviceInfo;
for(;prt != NULL; prt = prt->pBase){
if(prt == &rt)
return TRUE;
}
return FALSE;
}
virtual RuntimeClass GetRuntimeClass(){
return rtCDeviceInfo;
}
static RuntimeClass rtCDeviceInfo;
};
RuntimeClass CDevice::rtCDeviceInfo = {"CDevice", &rtCBaseInfo};
int main(int argc, char* argv[])
{
CDevice d;
CDevice* pd = &d;
//BOOL bRet = pd->IsKindOf(???);
BOOL bRet = pd->IsKindOf(CBase::rtCBaseInfo);
BOOL bRet2= pd->IsKindOf(CTest::rtCTestInfo);
system("pause");
return 0;
}
#include <afx.h>
struct RuntimeClass {
public:
char* pszClassName;
RuntimeClass* pBase;
};
class CTest {
virtual IsKindOf(RuntimeClass& rt){
RuntimeClass *prt = &rtCTestInfo;
for(;prt != NULL; prt = prt->pBase){
if(prt == &rt)
return TRUE;
}
return FALSE;
}
public:
static RuntimeClass rtCTestInfo;
};
RuntimeClass CTest::rtCTestInfo = {"CTest", NULL};
class CBase {
virtual IsKindOf(RuntimeClass& rt){
RuntimeClass *prt = &rtCBaseInfo;
for(;prt != NULL; prt = prt->pBase){
if(prt == &rt)
return TRUE;
}
return FALSE;
}
public:
static RuntimeClass rtCBaseInfo;
};
RuntimeClass CBase::rtCBaseInfo = {"CBase", NULL};
class CDevice:public CBase{
public:
virtual BOOL IsKindOf(RuntimeClass& rt){
RuntimeClass *prt = &rtCDeviceInfo;
for(;prt != NULL; prt = prt->pBase){
if(prt == &rt)
return TRUE;
}
return FALSE;
}
virtual RuntimeClass GetRuntimeClass(){
return rtCDeviceInfo;
}
static RuntimeClass rtCDeviceInfo;
};
RuntimeClass CDevice::rtCDeviceInfo = {"CDevice", &rtCBaseInfo};
int main(int argc, char* argv[])
{
CDevice d;
CDevice* pd = &d;
//BOOL bRet = pd->IsKindOf(???);
BOOL bRet = pd->IsKindOf(CBase::rtCBaseInfo);
BOOL bRet2= pd->IsKindOf(CTest::rtCTestInfo);
system("pause");
return 0;
}
- 模拟 mfc 类型识别
- MFC关键技术模拟(4)------类型识别
- MFC中RTTI 运行时类型识别 的模拟实现
- MFC中RTTI 运行时类型识别 的模拟实现
- c++模拟MFC中运行时类型识别(RTTI)(Run-Time Type Identification)
- 仿MFC动态类型识别
- MFC 动态类型识别思路
- MFC 类型识别与动态创建
- MFC关键技术之运行时类型识别
- MFC中的运行时类型识别(RTTI)
- MFC的运行时类型识别
- MFC运行时类型识别(MFC RTTI)与动态创建
- MFC六大关键技术之运行时类型识别
- MFC六大关键技术之运行时类型识别
- MFC六大关键技术之运行时类型识别
- 理解“MFC的动态类型识别和动态创建”
- MFC执行期类型识别与动态创建技术内幕
- MFC执行期类型识别与动态创建技术内幕
- 一个百度程序员的创业故事
- 00-iOS开发经典语录
- opencv 中sift 的使用
- DB2创建临时表时的错误
- HDU 1588 Gauss Fibonacci(矩阵快速幂+二分求等比数列和)
- 模拟 mfc 类型识别
- 用pig实现的矩阵乘
- centos 安装postgresql
- locale
- Tomcat7 Debug run in ecplise
- Yii笔记
- 03-基于HttpListener的Web服务
- 给定能随机生成整数1到5的函数,写出能随机生成整数1到7的函数
- matlab主要命令大全