C++ 基礎(chǔ)教程

C++ 流程控制

C++ 函數(shù)

C++ 數(shù)組 & 字符串

C++ 數(shù)據(jù)結(jié)構(gòu)

C++ 類 & 對象

C++ 指針

C++ 繼承

C++ STL 教程

C++ 參考手冊

C++ 強(qiáng)制轉(zhuǎn)換運(yùn)算符

C++ 運(yùn)算符

強(qiáng)制轉(zhuǎn)換運(yùn)算符是一種特殊的運(yùn)算符,它把一種數(shù)據(jù)類型轉(zhuǎn)換為另一種數(shù)據(jù)類型。強(qiáng)制轉(zhuǎn)換運(yùn)算符是一元運(yùn)算符,它的優(yōu)先級與其他一元運(yùn)算符相同。

大多數(shù)的 C++ 編譯器都支持大部分通用的強(qiáng)制轉(zhuǎn)換運(yùn)算符:

(type) expression

其中,type 是轉(zhuǎn)換后的數(shù)據(jù)類型。下面列出了 C++ 支持的其他幾種強(qiáng)制轉(zhuǎn)換運(yùn)算符:

  • const_cast<type> (expr): const_cast 運(yùn)算符用于修改類型的 const / volatile 屬性。除了 const 或 volatile 屬性之外,目標(biāo)類型必須與源類型相同。這種類型的轉(zhuǎn)換主要是用來操作所傳對象的 const 屬性,可以加上 const 屬性,也可以去掉 const 屬性。

  • dynamic_cast<type> (expr): dynamic_cast 在運(yùn)行時執(zhí)行轉(zhuǎn)換,驗(yàn)證轉(zhuǎn)換的有效性。如果轉(zhuǎn)換未執(zhí)行,則轉(zhuǎn)換失敗,表達(dá)式 expr 被判定為 null。dynamic_cast 執(zhí)行動態(tài)轉(zhuǎn)換時,type 必須是類的指針、類的引用或者 void*,如果 type 是類指針類型,那么 expr 也必須是一個指針,如果 type 是一個引用,那個 expr 也必須是一個引用。

  • reinterpret_cast<type> (expr): reinterpret_cast 運(yùn)算符把某種指針改為其他類型的指針。它可以把一個指針轉(zhuǎn)換為一個整數(shù),也可以把一個整數(shù)轉(zhuǎn)換為一個指針。

  • static_cast<type> (expr): static_cast 運(yùn)算符執(zhí)行非動態(tài)轉(zhuǎn)換,沒有運(yùn)行時類檢查來保證轉(zhuǎn)換的安全性。例如,它可以用來把一個基類指針轉(zhuǎn)換為派生類指針。

上述所有的強(qiáng)制轉(zhuǎn)換運(yùn)算符在使用類和對象時會用到?,F(xiàn)在,請看下面的示例,理解 C++ 中如何使用一個簡單的強(qiáng)制轉(zhuǎn)換運(yùn)算符。復(fù)制并黏貼下面的 C++ 程序到 test.cpp 文件中,編譯并運(yùn)行程序。

#include <iostream>
using namespace std;
 
int main()
{
   double a = 21.09399;
   float b = 10.20;
   int c ;
 
   c = (int) a;
   cout << "第1行-(int)a的值為 :" << c << endl ;
   
   c = (int) b;
   cout << "第2行-(int)b的值為  :" << c << endl ;
   
   return 0;
}

當(dāng)上面的代碼被編譯和執(zhí)行時,它會產(chǎn)生下列結(jié)果:

第1行-(int)b的值為 :21
第2行-(int)b的值為  :10

C++ 運(yùn)算符

丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清