亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

c++中如何使用static_cast轉換

發布時間:2021-09-23 09:22:14 來源:億速云 閱讀:168 作者:小新 欄目:開發技術

這篇文章主要介紹c++中如何使用static_cast轉換,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

  static_cast是一個強制類型轉換操作符。強制類型轉換,也稱為顯式轉換,C++中強制類型轉換操作符有static_cast、dynamic_cast、const_cast、reinterpert_cast四個。本節介紹static_cast操作符。

  static_cast的轉換

  ?編譯器隱式執行的任何類型轉換都可以由static_cast來完成,比如int與float、double與char、enum與int之間的轉換等。

  doublea=1.999;

  intb=static_cast<double>(a);//相當于a=b;

  當編譯器隱式執行類型轉換時,大多數的編譯器都會給出一個警告:

  e:\vs2010projects\static_cast\static_cast\static_cast.cpp(11):warningC4244:“初始化”:從“double”轉換到“int”,可能丟失數據

  使用static_cast可以明確告訴編譯器,這種損失精度的轉換是在知情的情況下進行的,也可以讓閱讀程序的其他程序員明確你轉換的目的而不是由于疏忽。

  把精度大的類型轉換為精度小的類型,static_cast使用位截斷進行處理。

  ?使用static_cast可以找回存放在void*指針中的值。

  doublea=1.999;

  void*vptr=&a;

  double*dptr=static_cast<double*>(vptr);

  cout<<*dptr<<endl;//輸出1.999

  static_cast用來做什么

  static_cast也可以用在于基類與派生類指針或引用類型之間的轉換。然而它不做運行時的檢查,不如dynamic_cast安全。static_cast僅僅是依靠類型轉換語句中提供的信息來進行轉換,而dynamic_cast則會遍歷整個類繼承體系進行類型檢查,因此dynamic_cast在執行效率上比static_cast要差一些。現在我們有父類與其派生類如下:

  classANIMAL

  {

  public:

  ANIMAL():_type("ANIMAL"){};

  virtualvoidOutPutname(){cout<<"ANIMAL";};

  private:

  string_type;

以上是“c++中如何使用static_cast轉換”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

噶尔县| 肇庆市| 霍山县| 广安市| 黎城县| 乌拉特中旗| 新郑市| 津市市| 阜城县| 霍林郭勒市| 兰坪| 松原市| 师宗县| 新安县| 凤翔县| 苏州市| 大新县| 塔城市| 孝义市| 南丰县| 灵宝市| 波密县| 葵青区| 观塘区| 永宁县| 肃北| 武清区| 东丰县| 定陶县| 尤溪县| 河曲县| 南投市| 宝坻区| 射洪县| 图们市| 柳江县| 辉县市| 昌黎县| 茌平县| 阿克苏市| 榆林市|