日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++类型转换: static_cast const_cast reinterpret_cast dynamic_cast

發布時間:2025/3/21 c/c++ 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++类型转换: static_cast const_cast reinterpret_cast dynamic_cast 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
* C++提供了四種新的類型強制: static_cast const_cast reinterpret_cast dynamic_cast 1)staic_cast靜態強制; 不能在無關的指針之間進行static類型強制 class CAnimal { //... public: CAnimal(){} }; class CGiraffe:public CAnimal { //... public: CGiraffe(){} }; int main(void) { CAnimal an; CGiraffe jean; an = static_cast<CAnimal>(jean);//將對象jean強制成CAnimal類型 return 0; } 2、const_cast類型強制 const_cast類型強制將一個const變量變成一個非const的等價形式 int main() { const int j = 99; int * k; k = const_cast<int *>(&j);//解除const return 0; } 3、reinterpret_cast運算符 reinterpret_cast運算符用來將一個類型指針轉變為另一種類型的指針,也用在將整開型量轉為指針,或將指針轉為整型量上; int main() { int j = 10; int * ptr = &j; char * cptr; cptr = reinterpret_cast<char *>(ptr);//將int指針類型轉變為char的指針類型 return 0; } 4、dynamic_cast運算符 dynamic_cast的主要目的是: 1)它返回派生類對象的地址; 2)它測試基類指針是否指向下一尖括號<>中所指定類型的對象 dynamic_cast是一個運行時類型信息,dynamic_cast運算符將指向派生對象的基類部分的基類指針轉變為指向派生對象的派生類指針,dynamic_cast必須嚴格地指定與派生對象相同的類,或者它返回NULL指針; class CAnimal { //... }; class CGiraffe:public CAnimal { //... }; class CGoat:public CAnimal { //... }; int main() { CGiraffe gene; CAnimal * aptr = &gene; CGiraffe * ptr1,* ptr2; ptr1 = dynamic_cast<CGiraffe *>(aptr); ptr2 = dynamic_cast<CGoat *>(aptr); //return NULL return 0; }

總結

以上是生活随笔為你收集整理的C++类型转换: static_cast const_cast reinterpret_cast dynamic_cast的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。