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.用於類層次結構中基類和派生類之間指標或引用的轉換 進行上行轉換是安全的,進行下行轉換時是不安全的 ...