唯C更漂亮

VC。。。。。。

  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  12 随笔 :: 0 文章 :: 6 评论 :: 0 Trackbacks
class Bus: public Vehicle
{
  public:
     void ShowStation();
}
Vehicle  *pVehicle =new Vehicle();
Bus   bus ;
pVehicle = &bus;
dynamic_cast<Bus *>(pVehicle)->ShowStation()

上面的dynamic_cast在运行时有错,why?


posted on 2007-04-17 11:20 唯C程序猿 阅读(331) 评论(6)  编辑 收藏 引用

评论

# re: why? 2007-04-17 12:37 Corner Zhang
汗! 这里只好多句话了:学好C++!  回复  更多评论
  

# re: why? 2007-04-17 12:48 唯C程序猿
很少说话?何不用原因代替这句话?  回复  更多评论
  

# re: why? 2007-04-18 15:18 Corner Zhang
服了U! 细节上的错误先不说,编译时有没有注意编译器的警告,开启编译器的RTTI option没有?  回复  更多评论
  

# re: why? 2007-04-18 15:54 MicroYang
pVehicle 后来是指向的是BUS的对象哦,这个时候再去做dynamic_cast,如果是指针的话,会导致指针被转成0,当然会runtime error.很不幸你的就是这样子了。如果是引用的话,会有bad_cast异常抛出的。这个是属于runtime indentification.是在运行时刻检查的。如果你还想深入知道为什么,去看书。  回复  更多评论
  

# re: why? 2007-04-18 22:51 wzqxp2002
楼主需要C++基础知识  回复  更多评论
  

# re: why? 2007-04-19 21:55 唯C程序猿
谢谢大家的好意,我正在努力。可是我好像把清华出版的一本教材看里几遍也还是感觉没提高。也许是看的范围和深度不够。

如果大家有好的书,希望推荐一下,再次感谢。  回复  更多评论
  


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理