搜尋

首頁  >  問答  >  主體

c++ - 这段代码的运行结果问题

阿神阿神2774 天前432

全部回覆(2)我來回復

  • 天蓬老师

    天蓬老师2017-04-17 13:47:56

    Base* pb = new Derived[4];數組是不提供多態性質的,當你用pb[0],pb[1],...的方式獲取數組元素時,獲取的並不是Derived對象,在你的case來看,pb指針每次偏移sizeof(int)的位址長度,剛好你的Base類別和Derived類別都有data成員變數,所以每次輸出值其實是Base::data。記憶體分佈應該是01|11|21|31。 ‘|’分隔derived類。我講的應該不太清晰,你可以參考這位大牛的講解。 http://coolshell.cn/articles/9543.html

    回覆
    0
  • 天蓬老师

    天蓬老师2017-04-17 13:47:56

    rootwynn說的很對,另外提供一個工具 c++線上編譯

    回覆
    0
  • 取消回覆