簡體   English   中英

c++ 中的投擲和接球

[英]Throw and Catch in c++

(c++)所以我的 throw 代碼就像throw "No paper"而我的 catch 代碼是catch(const char *txt ){}我的問題是為什么我們使用指針來定義 catch 類型以及為什么 char,我們不能使用像catch(string txt){}這樣的東西我只是學習異常處理,無法弄清楚他們為什么使用指針。 這是 代碼

當您拋出C 字符串文字(如“無紙”)時,實際上是在拋出const char*類型的指針,而不是字符數組。 這就是 C++ 的工作原理。

換句話說,字符串文字會自動衰減為const char* catch參數接收到它時,它不會神奇地變成std::string或類似的東西。

從技術上講,拋出 8 字節指針通常比拋出 32 字節std::string更有效。 object 的大小越大,在異常處理過程中復制它的成本就越高。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM