目錄
內聯函式
內聯函式與帶引數巨集區別
型別轉換符
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 語言在內建型別之間定義了幾種自動轉換規則。同樣的我們也能為類定義隱式轉換規則。如果建構函式只接受乙個實參,則它實際上定義了轉換為此類的隱式轉換機制,有時我們把這種建構函式稱作轉換建構函式。隱式轉換編譯器只會自動地執行一步,如果需要執行多步就是語法錯誤了 例如乙個函式...