91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

C++代碼舉例分析

發布時間:2021-11-29 15:52:12 來源:億速云 閱讀:150 作者:iii 欄目:編程語言

這篇文章主要介紹“C++代碼舉例分析”,在日常操作中,相信很多人在C++代碼舉例分析問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”C++代碼舉例分析”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

所以 v 應該調用它們的析構函數。但是假設在這個調用期間,第二個 Widgets 的析構函數又拋出一個異常。現在有兩個異常同時在活動中,對于C++代碼解析來說這太多了。在非常巧合的條件下發生這樣兩個同時活動的異常,程序的執行會終止或者引發未定義行為。

在本例中,將引發未定義行為。與此相同,使用任何標準庫容器(比如,list,set),任何 TR1中的容器,甚至是一個數組,都可能會引發未定義問題。并非必須是容器或數組才會陷入麻煩。程序夭折或未定義行為是析構函數引發異常的結果。

即使沒有使用容器或數組也會如此。C++ 不喜歡引發異常的析構函數。 這比較容易理解,但是如果你的析構函數需要執行一個可能失敗而拋出異常的操作,該怎么辦呢?例如,假設你與一個數據庫連接類一起C++代碼解析

class Widget {   public:  ...  ~Widget() { ... } // assume this might emit an exception  };   void doSomething()  {   std::vector<Widget> v;   ...  } // v is automatically destroyed here

為了確保客戶不會忘記調用 DBconnection 對象的 close,一個合理的主意是為 DBConnection 建立一個資源管理類,在它的析構函數中調用 close。這樣的資源管理類將在以后的文章中探討,但在這里,只要認為這樣一個類的析構函數看起來像這樣就足夠了:

class DBConn { // class to manage DBConnection   public: // objects  ...  ~DBConn() // make sure database connections  { // are always closed   db.close();  }   private:  DBConnection db;  };    它允許客戶像這樣編程:   {    // open a block   DBConn dbc(DBConnection::create()); // create DBConnection object   // and turn it over to a DBConn   // object to manage   ... // use the DBConnection object   // via the DBConn interface  } // at end of block, the DBConn  // object is destroyed, thus  // automatically calling close on  // the DBConnection object

既然能成功地進行C++代碼解析那就好了,但是如果這個調用導致了異常,DBConn 的析構函數將散播那個異常,也就是說,它將離開析構函數。這就產生了問題,因為析構函數拋出了一個燙手的山芋。

到此,關于“C++代碼舉例分析”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

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

c++
AI

改则县| 台山市| 大竹县| 桂林市| 凉城县| 吉水县| 萝北县| 神木县| 津南区| 东丽区| 宝鸡市| 通许县| 玛沁县| 二手房| 公安县| 龙井市| 石泉县| 渝中区| 长泰县| 沅江市| 仁布县| 鸡泽县| 乌兰浩特市| 汾西县| 星子县| 北海市| 新干县| 巴彦淖尔市| 弋阳县| 新河县| 崇信县| 长葛市| 乌拉特后旗| 巴林左旗| 游戏| 凤山县| 孟连| 宕昌县| 禹州市| 清徐县| 哈密市|