回覆列表
  • 1 # 餘隨雲

    悟空為啥邀請回答的問答俺都不知道或不怎麼會的?就象這個,俺實際上從沒用過C++或者發表過關於C++言論。俺實際上也沒有過這方面的程式設計經歷和經驗。俺只是當年大學時學會彙編,後來對程式語言多少有些興趣罷了。因工作關係,除了彙編自己玩過一陣外,別的程式語言從來沒機會上機試過手。

    前兩天悟空的邀請就有些奇怪,邀答的問答根本沒聽過,亦沒興趣,所以不加理會。昨天悟空邀答又是這種根本說不上話的話題,本來也不想理會的,但畢竟對此有些興趣,所以今天又翻來看看,究竟應該如何解析?也可以學點東西不是?但卻沒看到有答的(那個簽到的就不算了),感覺比較奇怪:悟空上不可能沒這方面的高手,為啥無人理會?問題應該不難,想了想,可能關注這方面的應該不太多,引不起專家的興趣吧。

    就此專門查了下題目的名詞概念,翻閱了一些人的解釋(在此說下,有類似問題的還是在網上先搜尋一下,即使沒找到真正的答案,多少也可以有點幫助的),理解到的關鍵點在於:基類指標能指向派生類物件的根本原因是C++編譯器及開發平臺、執行時類庫等對多型性的支援,即被指向的派生類物件在基類中對應的物件型別應該是動態的,不能是非動態的型別物件,而且被指向的派生類物件中也只有繼承來的基類物件的元素才可以被基類指標操控,自有的元素不能被操控。編譯時,當基類指標指向該種類型的物件時,編譯器並不能立刻確定該指標需呼叫的物件是基類的還是派生類的(可能有多個派生類),需到執行時才能根據該物件的型別來動態決定究竟該呼叫的是哪個物件。

    這個原因關鍵竟然是來自於執行時程式資料在記憶體的存放方式和順序。說記憶體中存放派生類物件資料時是所有繼承於基類物件的元素都放於前部,後面才是自有的,但基類指標搜尋資料時只能搜尋到基類物件原來定義的大小範圍,而不可能自動突破這個範圍。

  • 中秋節和大豐收的關聯?
  • 上了大學本應接受的高等教育,可是上了各種專業課反而感覺什麼也沒學到,這個迷茫期應該怎麼辦?