4 內聯函式與型別轉換符

2021-08-19 10:19:39 字數 692 閱讀 1323

目錄

內聯函式

內聯函式與帶引數巨集區別

型別轉換符

inline int max(int a, int b)

#define max(a, b) (a) > (b) ? (a) : (b) //巨集

const_cast

void fun(int& val)

int main()

static_cast

reinterpret_cast

reinterpret_cast「通常為運算元的位模式提供較低層的重新解釋」也就是說將資料以二進位制存在形式的重新解釋。

int i;

char *p = "this is a example.";

i = reinterpret_cast(p);

//此時結果,i與p的值是完全相同的。

int *ip=1;

char *pc = reinterpret_cast(ip);

// 程式設計師需要記得pc所指向的真實物件是int型,並非字串。

// 如果將pc當作字元指標進行操作,可能會造成執行時錯誤

// 如int len = strlen(pc);

盡可能避免強制型別轉換(顯示轉換)

轉 C 型別轉換函式(型別轉換運算子函式)

轉 用轉換建構函式可以將乙個指定型別的資料轉換為類的物件。但是不能反過來將乙個類的物件轉換為乙個其他型別的資料 例如將乙個complex類物件轉換成double型別資料 c 提供型別轉換函式 type conversion function 來解決這個問題。型別轉換函式的作用是將乙個類的物件轉換成另...

類型別轉換(轉換建構函式 型別轉換運算子)

只有乙個引數的建構函式可以作為轉換建構函式,預設情況下會發生隱式轉換,但是如果你對轉換建構函式加上了關鍵字explicit,它就不允許隱式轉換,但是你可以通過static cast等進行強制轉換。而且只允許一步類型別轉換,什麼意思呢?比如乙個類str,它有乙個建構函式,這個建構函式只需要乙個引數,且...

轉換建構函式 型別轉換運算子

1.先講一下隱式的類型別轉換,c 語言在內建型別之間定義了幾種自動轉換規則。同樣的我們也能為類定義隱式轉換規則。如果建構函式只接受乙個實參,則它實際上定義了轉換為此類的隱式轉換機制,有時我們把這種建構函式稱作轉換建構函式。隱式轉換編譯器只會自動地執行一步,如果需要執行多步就是語法錯誤了 例如乙個函式...