RUNTIME_CLASS的问题

管哥的天下 2011-12-01 04:53:07

#include "stdafx.h"

#include <stdio.h>


class CAge
{
DECLARE_DYNAMIC(CAge)
;
};

int main(int argc, char* argv[])
{

CAge *pAge = new CAge;;
if(pAge->IsKindOf(RUNTIME_CLASS(CAge)))
{
printf("hello runtime class1");
}
delete pAge;
return 0;
}





我是在控制台应用程序中的

当我运行时,提示
--------------------Configuration: CCCC - Win32 Debug--------------------
Compiling...
CCCC.cpp
D:\CCCC\CCCC.cpp(19) : error C2039: 'IsKindOf' : is not a member of 'CAge'
D:\CCCC\CCCC.cpp(10) : see declaration of 'CAge'
D:\CCCC\CCCC.cpp(19) : error C2065: 'RUNTIME_CLASS' : undeclared identifier
D:\CCCC\CCCC.cpp(19) : error C2275: 'CAge' : illegal use of this type as an expression
D:\CCCC\CCCC.cpp(10) : see declaration of 'CAge'
Error executing cl.exe.

CCCC.obj - 3 error(s), 0 warning(s)
...全文
232 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
管哥的天下 2011-12-01
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 maoxing63570 的回复:]
这是MFC中的
[/Quote]
象上面所说的那样,一个typeid()运算子就可以轻松地识别一个对象是否属于某一个类,但MFC并不是用typeid()的运算子来进行动态类型识别,而是用一大堆令人费解的宏。

正解!
hoya5121 2011-12-01
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 guandq2106 的回复:]
引用 6 楼 caozl 的回复:
引用 5 楼 healer_kx 的回复:

你还没有用这个宏呢:
IMPLEMENT_DYNAMIC



正解 首先要从CObject派生 然后要在.h文件和.cpp文件里分别用DECLARE_DYNAMIC和IMPLEMENT_DYNAMIC这个宏 一个用来声明 一个用来实现。


我试了。在在.h文件和.cpp文件里分别用DECLA……
[/Quote]


在stdafx。h中包含afx.h文件
工程属性中选择使用mfc
管哥的天下 2011-12-01
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 caozl 的回复:]
引用 5 楼 healer_kx 的回复:

你还没有用这个宏呢:
IMPLEMENT_DYNAMIC



正解 首先要从CObject派生 然后要在.h文件和.cpp文件里分别用DECLARE_DYNAMIC和IMPLEMENT_DYNAMIC这个宏 一个用来声明 一个用来实现。
[/Quote]

我试了。在在.h文件和.cpp文件里分别用DECLARE_DYNAMIC和IMPLEMENT_DYNAMIC这个宏 一个用来声明 一个用来实现。
还是不行!
caozl 2011-12-01
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 healer_kx 的回复:]

你还没有用这个宏呢:
IMPLEMENT_DYNAMIC

[/Quote]

正解 首先要从CObject派生 然后要在.h文件和.cpp文件里分别用DECLARE_DYNAMIC和IMPLEMENT_DYNAMIC这个宏 一个用来声明 一个用来实现。
healer_kx 2011-12-01
  • 打赏
  • 举报
回复
你还没有用这个宏呢:
IMPLEMENT_DYNAMIC

详细看这个:http://blog.csdn.net/sunjd2001/article/details/1609248
管哥的天下 2011-12-01
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 maoxing63570 的回复:]
这是MFC中的
[/Quote]

RTTI我看c++primer中好像也有介绍
管哥的天下 2011-12-01
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 healer_kx 的回复:]
MFC的动态创建,你的CAge要派生自CObject类。
[/Quote]
我派生了,还是错误
healer_kx 2011-12-01
  • 打赏
  • 举报
回复
MFC的动态创建,你的CAge要派生自CObject类。
maoxing63570 2011-12-01
  • 打赏
  • 举报
回复
这是MFC中的

65,206

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧