candy080868 2017-11-30 09:00 采纳率: 25%
浏览 2400
已结题

C++ vector向量取值问题

有一元素为类A指针的vector vector<*A> v,出现了很奇怪的现象:
向v中加A的子类B、C、D对象的指针,
对于v中的元素,使用dynamic_cast<*B>是否是B类型的指针。
使用迭代器遍历v时,经过测试能够获得正确的结果,(第一种方法)
但是,比如已知v的最后一个元素是*B类型的,取出(使用v.end()-1)并判断,正确结果只有当强制退出程序时才出现?(第二种方法)
就是我在Linux中,使用Qt写的程序,如果判断正确,就qDebug()<<"sucess",
第二种方法在我强制退出程序时才打印出sucess.

  • 写回答

3条回答 默认 最新

  • oyljerry 2017-11-30 09:12
    关注

    dynamic_cast可以用来进行从A*转换到B*等子类。
    取出的时候先看是否取到正确的指针。然后进行转换

    评论

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog