這是我學習基於linux c++做的筆記!
rtti
物件轉型模板
dynamic_cast:動態轉型(類型別指標或引用的轉型)
static_cast:靜態轉型
reinterpret_cast:復詮轉型
const_cast:常亮轉型
type_info類
編譯器實現的動態形式資訊型別;
用於在程式執行時儲存資料物件的形式資訊;
不能直接使用該類,只能通過typeid操作符;
呼叫成員函式name(),可以獲得類的名稱;
typeid操作符
#includeprogrammer p;//類
employee &e=p;//類
cout<dynamic_cast三種方式
指標的動態轉型
引用的動態轉型
static_cast
static_cast的問題
const_cast
const_cast的問題
class constcasttest
void constcasttest::printnum() const{//傳進來常量指標this,指向當前類物件
//臨時將指向常量物件指標轉換為非常量
const_cast(this)->num--;
cout<<_num<reinterpret_cast
reinterpret_cast的問題
物件轉型(向上轉型和向下轉型)
物件轉型分為兩種 一種叫向上轉型 父類物件的引用或者叫基類物件的引用指向子類物件,這就是向上轉型 另一種叫向下轉型。轉型的意思是 如把float型別轉成int型別,把double型別轉成float型別,把long型別轉成int型別,這些都叫轉型。把一種形式轉成另外一種形式就叫轉型。除了基礎資料型別的...
物件序列化和rtti
以前以為序列化和rtti沒什麼關係,其實關係密切。先說序列化,序列化是將物件轉化成位元組流資料,以便進行資料傳輸和儲存,最簡單的直接的說法就是 存檔 玩個單機遊戲,玩著玩著存個盤,遊戲裡的主角,npc,地圖各種遊戲元素,以某種方式儲存到檔案中,只不過單說序列化不講介質,從物件變成二進位制資料流,就是...
物件變數多型性 上轉型物件和下轉型物件
上轉型物件 上轉型物件只能訪問父類中宣告的成員變數和成員方法,不可以訪問子類新增的特有的成員變數和成員方法。如果子類重寫了父類的方法,則上轉型物件呼叫該方法時,必定是呼叫重寫的方法。如果子類重新定義了父類的同名變數,則上轉型物件應用該變數時是父類中的定義的變數,而不是子類中定義的變數。下轉型物件 將...