关于RTTI的一个警告

buaajbp 2008-10-22 10:20:39
warning C4541: 'dynamic_cast' used on polymorphic type 'class CA' with /GR-; unpredictable behavior may result

各位看看吧,,,,运行环境是vc6.0

源码::

class CA
{
public:
CA(void){}
virtual ~CA(void){}
};

class CB : public CA
{
public:
CB(void){}
virtual ~CB(void){}
};

class CC : public CB
{
public:
CC(void){}
virtual ~CC(void){}
};

int main(void)
{
CA* pA = new CA;
CB* pB = new CB;
CC* pC = new CC;

// ²»°²È«µÄת»»
CB* pTest1 = dynamic_cast<CB*>(pA);
cout << int(pTest1) << endl;
// °²È«µÄת»»
CB* pTest2 = dynamic_cast<CB*>(pB);
cout << int(pTest2) << endl;
// °²È«µÄת»»
CB* pTest3 = dynamic_cast<CB*>(pC);
cout << int(pTest3) << endl;


return 0;
}


...全文
53 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
OenAuth.Net 2008-10-22
  • 打赏
  • 举报
回复
原因很简单,编译太老啦,
解决:porject->setting->c/c++里面有一个Category下拉框,选C++ Language
选中Enable Run-Time Type Information,确定再DEBUG就OK啦

65,211

社区成员

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

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