• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Robin Chow's C++ Blog

             

            [導入]Exception C++ 之 13

            C++ 中的內存區域分為6塊:
            1. 常量數據區:存儲字符串等在編譯期間就能確定的值。類對象不能存在與這個區域中。在程序的整個生存周期內,區域中的數據都是可用的。區域內的所有數據都是只讀的,任何企圖修改本區域數據的行為都會造成無法預料的后果。
            2. 棧區:存儲自動變量。棧區中,內存一旦被分配,對象就立即被構造好了;對象一旦被銷毀,分配的內存也立即被收回。
            3. 自由存儲區:是 C++ 的兩個動態內存區域之一,使用 new 和 delete 來予以分配和釋放。
            4. 堆區:是另一個動態存儲區域,使用 malloc、free 以及一些相關變量來進行分配和回收。
            5. 全局/靜態區:在程序啟動時才被分配,而且可能直到程序開始執行的時候才被初始化。比如,函數中的靜態變量就是在程序第一次執行到定義該變量的代碼時才被初始化的。對那些跨越了編譯單元的全局變量進行初始化操作的順序是沒有被明確定義的,因而需要特別注意管理全局對象(包括靜態類對象)之間的依賴關系。
            另外注意,C++ 標準對于堆和自由存儲區是否有聯系沒有予以詳細說明,不同編譯器可能有不同的實現。

            文章來源:http://my.donews.com/robinchow/2007/01/14/kvdartgbqpsrlrmsxjgnplhdrqqyqtkapnag/

            posted @ 2007-10-23 20:49 Robin Chow 閱讀(80) | 評論 (0)編輯 收藏

            [導入]Exception C++ 之 14

            關于內存管理:
            1. new 和 delete 必須配套提供,即提供了 new 就必須提供相應的 delete,反之亦然。
            2. 如果基類的析構函數聲明為 virtual,則對基類指針調用 delete 時總是調用派生類的析構函數,因而也總是調用派生類的 delete。
            3. 絕對不要以多態方式處理數組(見《More Effective C++》條款3)。
            4. new 和 delete 總是靜態的,即使它們不被顯式的聲明為 static。總是把它們聲明為 static 是個很好的習慣,這可以讓所有閱讀代碼的程序員明白無誤的認識到這一點。

            文章來源:http://my.donews.com/robinchow/2007/01/14/cnfqokuxltsdoepsgwhcvonezmrrzircwxsk/

            posted @ 2007-10-23 20:49 Robin Chow 閱讀(80) | 評論 (0)編輯 收藏

            [導入]Exception C++ 之 15

            使用 auto_ptr(靈巧指針)的注意事項:
            1. 對于 auto_ptr,拷貝不是對等的。右側的對象不再擁有對象的所有權。
            2. 不再擁有所有權的 auto_ptr 的指針會被置為 NULL,因而對它的解引用會導致錯誤。
            3. 使用 const auto_ptr 可以防止將該靈巧指針賦值給其他靈巧指針。

            文章來源:http://my.donews.com/robinchow/2007/01/14/xzuxgvbkpleammqcmlzlsjhkcqmgfdpddjaj/

            posted @ 2007-10-23 20:49 Robin Chow 閱讀(68) | 評論 (0)編輯 收藏

            [導入]Exception C++ 之 16

            • 如果需要的話,請編寫一個私有函數來使拷貝操作和拷貝賦值共享代碼;千萬不要利用“使用顯式的析構函數并且后面跟一個 placement new”的方法來達到“以拷貝構造操作實現拷貝賦值操作”這樣的目的。也就是說,決不要編寫如下的代碼:
              T& T::operator=(const T &other)
              {
                  if(this != &other)
                  {
                     this->~T();               // 有害!
                     new (this) T(other);   // 有害!
                  }
                  return *this;
              }
            • 關于拷貝賦值操作符有兩點需要注意:
              1. 將拷貝賦值操作聲明為“T& T::operator=(const T&)”
              2. 不要返回 const T&,盡管這樣做避免了諸如“(a = b) = c”的用法;這樣做意味著:你無法出于移植性的考慮而將 T 對象放入標準程序庫之容器 -- 因為其需要賦值操作返回一個單純的 T&。

            文章來源:http://my.donews.com/robinchow/2007/01/14/uufhhtovwfvygicxibjufbugcnhamivhcapk/

            posted @ 2007-10-23 20:49 Robin Chow 閱讀(57) | 評論 (0)編輯 收藏

            [導入]Exception C++ 之 17

            1. 建議總是使用“SomeType t(u)”的形式,一來是因為只要可以用“SomeType t = u”的地方也同樣可以用它;二來是因為它還有一些其它的有點,比如支持多個參數等。
            2. 關于 const:
              • 如果函數的返回類型不是一個內建(built-in)的類型的話,通常應該將其返回類型也聲明為 const。這樣可以避免該函數的調用者企圖修改臨時對象。
              • 對于傳引用作為實參,可以將其聲明為 const 以防止對其進行修改;如果使用傳值,則沒有必要聲明為 const。
              • 如果一個函數從邏輯上來說是 const 的,則應該將其聲明為 const 函數,即使該函數實際修改了對象的狀態,這時候必須將要修改的值聲明為 mutable。
            3. 關于類型轉換:
              • dynamic_cast:對公有繼承的基類和派生類進行轉換,轉換失敗時返回 NULL。
              • reinterpret_cast:對于互不相同、區別開來的類型(例如函數指針),盡管它們之間存在著隱式轉換,它們也是互無聯系的,應該用 reinterpret_cast 進行轉換。




            文章來源:http://my.donews.com/robinchow/2007/01/15/HxCWeJTzfsIHxGSohwbqozDYDPwcLcYtAApF/

            posted @ 2007-10-23 20:49 Robin Chow 閱讀(73) | 評論 (0)編輯 收藏

            [導入]C++ 代碼優化(英文)

            值得一看:

            C++ Code Optimizations
            文章來源:http://my.donews.com/robinchow/2007/01/15/bimskiqoaxkxvxlvzbfgoxtnrlgtocbpkohu/

            posted @ 2007-10-23 20:49 Robin Chow 閱讀(78) | 評論 (0)編輯 收藏

            [導入]不使用第三個數來交換兩個數的值的方法(英文)



            Interchanging 2 variables without the use of a third - Programming/PHP
            文章來源:http://my.donews.com/robinchow/2007/01/15/nbctysjyzmipdsnjkfhkwjgoqubiylxlmael/

            posted @ 2007-10-23 20:49 Robin Chow 閱讀(88) | 評論 (0)編輯 收藏

            [導入]Hohoho

            http://www.ianai.net/jokes/WillNotThrow.gif
            文章來源:http://my.donews.com/robinchow/2007/01/15/cglotemjvscvgbjpnasvjzxcgxvqqugtbsiv/

            posted @ 2007-10-23 20:49 Robin Chow 閱讀(86) | 評論 (0)編輯 收藏

            [導入]Exception C++ 之 18

            C++ 中 bool 是一個基本類型,可以通過各種方法來模擬它,但是都存在不同的缺陷:
            1. 使用 typedef 模擬,bool 不允許重載。
            2. 使用 #define,bool 不允許重載且通常破壞了 #define。
            3. enum bool允許重載但在條件表達式中不能進行自動類型轉換。bool b = (i == j)是錯誤的,因為 int 不能隱含地轉換成 enums。
            4. bool 類允許重載但不能讓 bool 對象在條件中作測試,除非它能提供自動轉換到基本類型,但是提供自動轉換卻通常會干擾函數重載解析過程。

            文章來源:http://my.donews.com/robinchow/2007/01/15/bszvusphgepqbphvticopjkpfadfapccibyd/

            posted @ 2007-10-23 20:49 Robin Chow 閱讀(80) | 評論 (0)編輯 收藏

            [導入]Exception C++ 之 19

            關于控制流(即 C++ 代碼的執行順序):
            1. 在各翻譯單元之間的那些全局變量(包括類的靜態變量)的初始化順序并未被定義。
            2. 當程序在 non-debug 模式下被建立的時候,編譯器會自動刪掉 assert()。因此不要在 assert 中加入有副作用的代碼。
            3. 對于代碼:cout << f(i) << g(i);,f 和 g 的執行順序是不確定的,即隨著不同的編譯器實現而有所不同。


            文章來源:http://my.donews.com/robinchow/2007/01/15/ragovhbegchcbordvelfjrvrdzairpzjpfxl/

            posted @ 2007-10-23 20:49 Robin Chow 閱讀(67) | 評論 (0)編輯 收藏

            僅列出標題
            共9頁: 1 2 3 4 5 6 7 8 9 

            導航

            統計

            常用鏈接

            留言簿(1)

            隨筆分類

            隨筆檔案

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            久久国产免费直播| 久久夜色精品国产欧美乱| 久久精品男人影院| 久久中文字幕视频、最近更新 | 无码国内精品久久人妻麻豆按摩| 欧美大战日韩91综合一区婷婷久久青草| 欧美与黑人午夜性猛交久久久| 久久久久人妻一区二区三区vr | 久久只有这精品99| 99久久99久久| 亚洲AV日韩精品久久久久久久| 久久久久久综合一区中文字幕| 久久精品18| 91精品国产9l久久久久| 人妻无码精品久久亚瑟影视| 夜夜亚洲天天久久| 亚洲精品蜜桃久久久久久| 久久久久久国产精品免费免费| 国产亚洲精久久久久久无码| 一日本道伊人久久综合影| 99久久无码一区人妻| 久久av无码专区亚洲av桃花岛| 久久久久久亚洲精品无码| 99久久99久久| 韩国无遮挡三级久久| 亚洲欧美日韩久久精品第一区| 午夜精品久久影院蜜桃| 久久久久九国产精品| 91久久精品无码一区二区毛片| 久久久无码精品亚洲日韩蜜臀浪潮| 亚洲精品无码久久久| 伊人久久大香线蕉成人| 一极黄色视频久久网站| 一本久久综合亚洲鲁鲁五月天亚洲欧美一区二区 | 少妇被又大又粗又爽毛片久久黑人| 亚洲精品高清国产一久久| 精品久久一区二区三区| 久久综合狠狠色综合伊人| 国产成人精品综合久久久| 国产一区二区三精品久久久无广告| 欧美亚洲另类久久综合|