• <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

             

            [導入]Exceptional C++ 之 3

            真正的拷貝構造函數或者拷貝賦值運算符只對完全相同類型的對象施以構造或賦值操作,并且,其如果是一個模板類的話,模板的參數也必須完全相同。模板“構造函數”和模板“賦值運算符”都不是真正的拷貝構造函數和賦值運算符,因此這種模板函數的出現并不會隱藏原來隱含的拷貝構造函數的聲明。

            文章來源:http://my.donews.com/robinchow/2007/01/10/lhiltldtjwkukgbtacjqkosnhqibccxojgzc/

            posted @ 2007-10-23 21:01 Robin Chow 閱讀(183) | 評論 (0)編輯 收藏

            [導入]Exceptional C++ 之 2

            標準庫中 string 的模板類:

            template<class charT,
            class traits= char_traits
            class Allocator = allocator<charT> >
            class basic_string;

            其中 char_traits 部分,它決定了字符的相互作用和比較運算,如eq()(相等)、ne()(不等)、lt()(小于)、compare()(比較字符序列)、find()(搜索字符序列)。因此只需重定義 char_traits 模板即可改變 string 的字符比較操作。
            文章來源:http://my.donews.com/robinchow/2007/01/10/cfjorztxnorsmkaafyrckgebtdmemrppxzeo/

            posted @ 2007-10-23 21:01 Robin Chow 閱讀(186) | 評論 (0)編輯 收藏

            [導入]Exceptional C++ 之 1

            設計準則:絕對不要解引用一個無效的 iterator。
            摘要:
            1. 有效的數值:iterator 指向的位置有效。
            2. 有效的壽命:iterator 使用時仍然有效。
            3. 有效的范圍:一對 iterators 組成一個有效的范圍,first 在 last 之前(或相等),并且兩者指向同一個container。
            4. 防止不合法的操作行為,如修改內置類型的暫時對象。

            文章來源:http://my.donews.com/robinchow/2007/01/10/rwyjwpstnlvfjtxeqzrupbzdkijaqyohunrq/

            posted @ 2007-10-23 21:01 Robin Chow 閱讀(204) | 評論 (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:51 Robin Chow 閱讀(89) | 評論 (0)編輯 收藏

            [導入]Hohoho

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

            posted @ 2007-10-23 20:51 Robin Chow 閱讀(76) | 評論 (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:51 Robin Chow 閱讀(117) | 評論 (0)編輯 收藏

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

            值得一看:

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

            posted @ 2007-10-23 20:51 Robin Chow 閱讀(104) | 評論 (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:51 Robin Chow 閱讀(108) | 評論 (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:51 Robin Chow 閱讀(61) | 評論 (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:51 Robin Chow 閱讀(65) | 評論 (0)編輯 收藏

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

            導航

            統計

            常用鏈接

            留言簿(1)

            隨筆分類

            隨筆檔案

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            亚洲AV无一区二区三区久久| 久久成人精品| 人人狠狠综合久久88成人| 国产亚洲综合久久系列| yellow中文字幕久久网| 亚洲精品乱码久久久久久不卡| 伊人久久大香线蕉综合影院首页| 亚洲精品白浆高清久久久久久 | 久久人人爽人人爽人人AV东京热| 久久精品国产亚洲av影院| 久久AAAA片一区二区| 久久棈精品久久久久久噜噜| 精品国产乱码久久久久久浪潮| 无码专区久久综合久中文字幕| 精品免费久久久久国产一区| 久久久婷婷五月亚洲97号色| 久久久久人妻一区二区三区 | 久久99精品免费一区二区| 久久久无码精品亚洲日韩京东传媒| 国产午夜精品理论片久久影视 | 久久精品国产影库免费看| 精品国产日韩久久亚洲| 久久久久香蕉视频| 色成年激情久久综合| 欧美激情精品久久久久| 97精品久久天干天天天按摩| 色综合久久中文字幕无码| 国内精品人妻无码久久久影院导航| 日日狠狠久久偷偷色综合96蜜桃| 色综合久久综精品| 情人伊人久久综合亚洲| 亚洲国产成人久久综合碰碰动漫3d| 国产精品禁18久久久夂久| 国产欧美久久久精品| 久久福利青草精品资源站免费| 欧美激情精品久久久久| 欧美一区二区精品久久| 国产激情久久久久影院小草| 丁香五月综合久久激情| 日本高清无卡码一区二区久久| 欧美激情精品久久久久久|