RTTI和物件轉型

2021-10-14 18:23:25 字數 946 閱讀 3180

這是我學習基於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,地圖各種遊戲元素,以某種方式儲存到檔案中,只不過單說序列化不講介質,從物件變成二進位制資料流,就是...

物件變數多型性 上轉型物件和下轉型物件

上轉型物件 上轉型物件只能訪問父類中宣告的成員變數和成員方法,不可以訪問子類新增的特有的成員變數和成員方法。如果子類重寫了父類的方法,則上轉型物件呼叫該方法時,必定是呼叫重寫的方法。如果子類重新定義了父類的同名變數,則上轉型物件應用該變數時是父類中的定義的變數,而不是子類中定義的變數。下轉型物件 將...