ObjectiveC執行時型別

2021-07-04 14:23:58 字數 468 閱讀 9563

class

定義objective-c類

ivar

定義物件的例項變數,包括型別和名字

protocol

定義正式協議

objc_property_t

定義屬性。叫這個名字可能是為了防止和objective-c 1.0中的使用者型別衝突,那時候還沒有屬性

method

定義物件方法或類方法。這個型別提供了方法的名字(就是選擇器)、引數數量和型別,以及返回值(這些資訊合起來稱為方法的簽名),還有乙個指向**的函式指標(也就是方法的實現)。

sel

定義選擇器。選擇器是方法名的唯一識別符號。

imp

定義方法實現。這只是乙個指向某個函式的指標,該函式接受乙個物件、乙個選擇器和乙個可變長引數列表(varargs),返回乙個物件

執行時型別識別

執行時的型別識別 rtti 分為兩類 1.typeid操作符 2.dynamic cast操作符 先看第二種 dynamic cast完成將基類型別的指標或者引用安全轉化為派生類型別的指標和引用。對於指標,如果轉化失敗,則將指標置為null,對於引用型別,因為沒有null,所以直接丟擲bad cas...

執行時型別檢查

執行時型別資訊 run time type information 通常記做rtti。在c primer第五版中,譯作執行型別識別 run time type identification 執行時型別資訊包括三部分 1 乙個運算子dynamic cast,給它乙個指向某某物件的基類指標,它能得到乙個...

執行時型別識別

q1 執行時型別識別 rtti 簡述 通過下面兩個操作符實現rtti 1 typeid 操作符,返回指標或引用所指物件的實際型別 2 dynamic cast操作符,將基類型別的指標或引用安全的轉換為派生型別的指標或引用對於帶虛函式的類,在執行時執行rtti操作符,對其他型別,在編譯時計算rtti操...