1 1 物件模型

2021-07-03 21:05:46 字數 767 閱讀 5581

q1:c++ 的類有兩種資料成員:static 資料成員與 nonstatic 資料成員, 有三種成員函式:static, nonstatic,virtual。

q2:在虛繼承的情況下,base class不管在繼承串鏈中被派生多少次,永遠只會存在乙個例項(稱為subobject)。

q3:c++物件模型。

每個物件之內:

①.nonstatic 資料成員

②.指向 vitual table 的指標 ( vptr ) ——其設定與重置由建構函式,析構函式與 copy assignment 運算子自動完成

個體物件之外:

①.static 資料成員

②.static 與 nonstatic 成員函式

virtual table:

每乙個類產生一堆指向 virtual function 的指標,放在**中,該**被稱為 virtual table

繼承類關係:

假設存在乙個 base class table ,該**中每個slot內含乙個相關的 base class 的位址,這樣每個類物件中會含有乙個 bptr,指向該base class table

** 使用指標或者 table 將引入間接性。間接性的缺點:空間與訪問時間上的額外負擔。間接性的優點:類物件的大小不會因為其base class的改變而受到影響

11 物件比較

1.數字比較用 字串比較用equals string str 要進行物件比較,必須對物件中所有屬性的值進行比較。範例 物件比較的基本方式 class book 省略無參構造方法和setter方法 public string gettitle public double getprice public...

7 物件模型

標準 c 物件模型在執行時效率方面卓有成效,但是在某些特定問題域下的靜態特性就顯得捉襟見肘。gui 介面需要同時具有執行時的效率以及更高階別的靈活性。為了解決這一問題,qt 擴充套件 了標準 c 所謂 擴充套件 實際是在使用標準 c 編譯器編譯 qt 源程式之前,qt 先使用乙個叫做 moc met...

11 物件的構造

目錄從程式設計的角度,物件只是變數,因此 問題 程式中如何對乙個物件進行初始化,使得不管在什麼地方建立類物件,其成員變數的初始值都為固定值?解決方案1 存在的問題 解決方案2 建構函式 示例 建構函式 注意 物件定義和物件宣告不同 建構函式的自動呼叫 class test test int v in...