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

溫馨提示×

溫馨提示×

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

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

怎樣創建Visual C++項目

發布時間:2021-11-20 14:49:11 來源:億速云 閱讀:183 作者:iii 欄目:編程語言

本篇內容主要講解“怎樣創建Visual C++項目”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“怎樣創建Visual C++項目”吧!

它將指針包裝成了類,并且重載了反引用(dereference)運算符operator *和成員選擇運算符operator ->,以模仿指針的行為

例如以下Visual C++代碼,

#include < cstring > #include < memory > #include < iostream > class string  {  public:  string(const char* cstr) { _data=new char [ strlen(cstr)+1 ]; strcpy(_data, cstr); }  ~string() { delete [] _data; }  const char* c_str() const { return _data; }  private:  char* _data;  };  void foo()  {

由于str是函數的局部對象,因此在函數退出點生存期結束,此時auto_ptr<string>的析構函數調用,自動銷毀內部指針維護的string對象(先前在構造函數中通過new表達式分配而來的),并進而執行string的析構函數,釋放為實際的字符串動態申請的內存。在string中也可能管理其他類型的資源,如用于多線程環境下的同步資源。

auto_ptr < string > str1( new string( < str1 > ) );  cout << str1->c_str();  auto_ptr < string > str2(str1); // str1內部指針不再指向原來的對象  cout << str2->c_str();   cout << str1->c_str(); // 未定義,str1內部指針不再有效

現在我們擁有了最簡單的廢料收集機制(我隱瞞了一點,在string中,你仍然需要自己編碼控制對象的動態創建和銷毀,但是這種情況下的準則極其簡單,就是在構造函數中分配資源,在析構函數中釋放資源,就好像飛機駕駛員必須在起飛后和降落前檢查起落架一樣。),即使在foo函數中發生了異常,str的生存期也會結束,C++保證自然退出時發生的一切在異常發生時一樣會有效。

auto_ptr<>只是智能指針的一種,它的復制行為提供了所有權轉移的語義,即智能指針在復制時將對內部維護的實際指針的所有權進行了轉移,例如:

template < typename T > class shared_ptr  {  private:    class implement  // 實現類,引用計數    {    public:      implement(T* pp):p(pp),refs(1){}            ~implement(){delete p;}            T* p; // 實際指針      size_t refs; // 引用計數    };    implement* _impl;        public:    explicit shared_ptr(T* p)      :  _impl(new implement(p)){}          ~shared_ptr()    {      decrease();  // 計數遞減    }          shared_ptr(const shared_ptr& rhs)      :  _impl(rhs._impl)    {      increase();  // 計數遞增    }

某些時候,需要共享同一個對象,此時auto_ptr就不敷使用,由于某些歷史的原因,Visual C++的標準庫中并沒有提供其他形式的智能指針,走投無路了嗎?在main()函數中,先調用foo1(val),函數中使用了一個局部對象temp,它和val共享同一份數據,并修改了實際值。

函數返回后,val擁有的值同樣也發生了變化,而實際上val本身并沒有修改過。然后調用了foo2(val),函數中使用了一個無名的臨時對象創建了一個新值,使用賦值表達式修改了val,同時val和臨時對象擁有同一個值,函數返回時,val仍然擁有這正確的值。

到此,相信大家對“怎樣創建Visual C++項目”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

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

AI

临邑县| 萨迦县| 隆回县| 天门市| 叶城县| 乐东| 环江| 泸水县| 阳信县| 平罗县| 汉川市| 泽普县| 渝北区| 河间市| 腾冲县| 凌源市| 平阴县| 博爱县| 广宁县| 竹溪县| 昭通市| 滦平县| 文安县| 鹤岗市| 无锡市| 夏津县| 高要市| 怀远县| 鄂托克旗| 吉林市| 彩票| 曲水县| 遂宁市| 安丘市| 武宁县| 汶上县| 平遥县| 九龙县| 铁力市| 阿拉善左旗| 会宁县|