【C++】C++ 强制转换运算符
?
C++ 運算符
強制轉換運算符是一種特殊的運算符,它把一種數據類型轉換為另一種數據類型。強制轉換運算符是一元運算符,它的優先級與其他一元運算符相同。
大多數的 C++ 編譯器都支持大部分通用的強制轉換運算符:
(type) expression
其中,type 是轉換后的數據類型。下面列出了 C++ 支持的其他幾種強制轉換運算符:
-
**const_cast (expr):**const_cast運算符用于修改類型的const / volatile屬性。除了 const 或 volatile 屬性之外,目標類型必須與源類型相同。這種類型的轉換主要是用來操作所傳對象的 const 屬性,可以加上 const 屬性,也可以去掉 const 屬性。 -
**dynamic_cast (expr):** dynamic_cast在運行時執行轉換,驗證轉換的有效性。如果轉換未執行,則轉換失敗,表達式 expr 被判定為 null。dynamic_cast 執行動態轉換時,type 必須是類的指針、類的引用或者 void*,如果 type 是類指針類型,那么 expr 也必須是一個指針,如果 type 是一個引用,那個 expr 也必須是一個引用。 -
reinterpret_cast (expr): reinterpret_cast 運算符把某種指針改為其他類型的指針。它可以把一個指針轉換為一個整數,也可以把一個整數轉換為一個指針。
-
static_cast (expr): static_cast 運算符執行非動態轉換,沒有運行時類檢查來保證轉換的安全性。例如,它可以用來把一個基類指針轉換為派生類指針。
上述所有的強制轉換運算符在使用類和對象時會用到。現在,請看下面的實例,理解 C++ 中如何使用一個簡單的強制轉換運算符。復制并黏貼下面的 C++ 程序到 test.cpp 文件中,編譯并運行程序。
#include <iostream>
using namespace std;int main()
{double a = 21.09399;float b = 10.20;int c ;c = (int) a;cout << "Line 1 - Value of (int)a is :" << c << endl ;c = (int) b;cout << "Line 2 - Value of (int)b is :" << c << endl ;return 0;
}
當上面的代碼被編譯和執行時,它會產生下列結果
Line 1 - Value of (int)a is :21
Line 2 - Value of (int)b is :10
總結
以上是生活随笔為你收集整理的【C++】C++ 强制转换运算符的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 驾照多少钱一分啊?
- 下一篇: 求一个好听的小吃店名字!