C 型別轉換 static cast

2021-07-14 06:36:41 字數 633 閱讀 9797

static_cast無法像const_cast一樣對將常量轉換為non-const型別,無法將某種型別的指標轉換為其他不相關的其他\

型別的指標,也無法將指標轉換為int(畢竟在64位系統下指標為64位而int為32位)等等,也就是說無法完成c++\

規則認為的沒有意義的轉換。

static_cast主要應用於兩種轉換:

如果使用者定義了相關的建構函式或轉換例程,可以使用static_cast進行型別轉換。

在繼承體系中使用static_cast進行向下轉型。只能用於指標或者引用,不能應用於物件本身。

下面是這兩種轉換的例項**:

#include 

using

namespace

std;

class b

virtual ~b(){}

int getdata()

};class a

a(b& b) :data(b.getdata())

{}virtual ~a(){}

void desc()

};class c :public a

};int _tmain(int argc, _tchar* argv)

C 強制型別轉換操作符 static cast

static cast是乙個強制型別轉換操作符。強制型別轉換,也稱為顯式轉換,c 中強制型別轉換操作符有static cast dynamic cast const cast reinterpert cast四個。本節介紹static cast操作符。double a 1.999 int b sta...

C 強制型別轉換操作符 static cast

static cast是乙個強制型別轉換操作符。強制型別轉換,也稱為顯式轉換,c 中強制型別轉換操作符有static cast dynamic cast const cast reinterpert cast四個。本節介紹static cast操作符。double a 1.999 int b sta...

C 強制轉換之static cast

static cast 用法 static cast expression 簡介 該運算子把expression轉換為type id型別,但沒有執行時型別檢查來保證轉換的安全性。主要有以下幾種用法 1.用於類層次結構中基類和派生類之間指標或引用的轉換 進行上行轉換是安全的,進行下行轉換時是不安全的 ...