天蓬老师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