C 顯式強制型別轉換

2021-09-29 20:35:45 字數 760 閱讀 6690

double x =

3.14

;int y =

(int

) x;

c++強制型別轉換:

const_cast,

static_cast

dynamic_cast

reinterpret_cast

去掉常量的底層const屬性:底層const:指標指向的內容不能變化,物件的內容不能改變

1.常量指標被轉化為非常量的指標,而且仍然指向原來的物件,但是可以修改指向物件的值

2.常量引用被轉化為非常量的引用,可以仍然指向原來的物件,可以修改引用的值

const_cast一般用於修改指標,去掉const屬性

static_cast 作用與c語言風格強制轉換基本一致,但是也有一一些注意項:

父類–>派生類

不安全派生類->父類

安全同時,被轉換的物件不能包含const屬性

char c =

'a';

int x = static_cast<

int> c;

dynamic_cast涉及到物件導向的多型性,涉及到程式執行的狀態,具體如下:

從子類到基類的轉換,可以實現

從基類到子類的轉換,基類必須要有虛函式表,不安全,返回空指標

主要用於基類指標或引用安全地轉換成派生類的指標或引用。

用於處理無關型別的轉換,任意指標之間,引用之間,指標和足夠大的int之間,平時很少用到。

C 顯式型別轉換

對於型別轉換,我在查資料的時候看到了一種很有意思的解釋,我們可以這樣理解型別轉換 某塊記憶體中的資料是不變的,而型別就是我們戴上的眼鏡,當我們戴上一種眼鏡後,我們就會用對應的型別來解釋記憶體中的資料,這樣不同的解釋就得到了不同的資訊。所謂強制型別轉換實際上就是換上另一副眼鏡後再來看同樣的那塊記憶體資...

c 顯式型別轉換

乙個命名的強制型別轉換具有以下形式 cast name expression 其中,type是轉換的目標型別,而expression是要轉換的值。如果type是引用型別,則結果是左值。cast name是static cast dynamic cast const cast reinterpret ...

C 顯式型別轉換

c 的隱式型別轉換不在此文章講述範圍。c 的顯式型別轉換有 4 種 static cast dynamic cast const cast reinterpret cast。語法 cast name expression type 是轉換的目標型別,expression 是要轉換的值。cast na...