C 中的4種運算子轉化以及它們的不同點

2021-08-01 09:40:15 字數 694 閱讀 5065

4種運算子如下:

(1)const_cast 操作符:用來幫助呼叫那些應該使用卻沒有使用const關鍵字的函式。換句話說,就是供程式設計師在特殊情況下將限制為const成員函式的const定**除,使其能更改特定屬性。

(2)dynamic_cast 操作符:如果啟動了支援執行時間型別資訊(rtti),dynamic_cast 可以有助於判斷在執行時所指向物件的確切型別。它與typeid運算子有關。可以將乙個基類的指標指向許多不同的子型別(派生類),然後將被轉型為基礎類的物件還原成原來的類。不過,限於物件指標的型別轉換,而非物件變數。

(3)reinterpret_cast 操作符:將乙個指標轉換成其他型別的指標,新型別的指標與舊指標可以毫不相關。通常用於某些非標準的指標資料型別轉換,例如將void *轉換為 char*。它也可以用在指標和整型數之間的型別轉換上。注意:它存在潛在的危險,除非有使用它的充分理由,否則就不要使用它。例如,它能夠將乙個int*型別的指標轉換為float*型別的指標,但是這樣就會很容易造成整數資料不能被正確的讀取。

(4)static_cast 操作符:它能在相關的物件和指標型別之間進行型別轉換。有關的類之間必須通過繼承、建構函式或者轉換函式發生聯絡。static_cast操作符還能在數字(原始的)型別之間進行型別轉換。通常情況下,static_cast操作符大多用於將數域寬度較大的型別轉換為較小的型別。當轉換的型別是原始資料型別時,這種操作可以有效地禁止編譯器發出警告。

C 中的 運算子

是運算子中等級最高的,它分為三種 1 global scope 全域性作用域符 用法 name 2 class scope 類作用域符 用法 class name 3 namespace scope 命名空間作用域符 用法 namespace name 他們都是左關聯 left associativ...

C 中的 運算子

原文出處 一兩行以上的成員函式最好被定義在類體之外。這要求乙個特殊的宣告語化來標識一 個函式是乙個類的成員 成員函式名必須被它的類名限定修飾 qualified 也就是告訴編譯器,這個成員函式在我這類的類域內,直到該成員函式結束。by the way,類體就定義了乙個類域,類體外通過 擴充類域吧 比...

C 中的運算子

算術運算子 int a 21 int b 10 int c c a b cout c c endl c a b cout c c endl c a b cout c c endl c a b cout c c endl c a b 取餘運算子 cout c c endl int d 10 c d 自...