[導(dǎo)入]Exception C++ 之 8
類的設(shè)計(jì)準(zhǔn)則:- 盡量重復(fù)運(yùn)用代碼,特別是標(biāo)準(zhǔn)庫(kù)。這樣不但比較快,也比較容易,比較安全。
- 小心隱式轉(zhuǎn)換所帶來(lái)的隱式臨時(shí)對(duì)象。避免這東西的一個(gè)好辦法就是盡可能讓 constructors 稱為 explicit,并且避免寫(xiě)出轉(zhuǎn)換運(yùn)算子。
- 盡量以 by const&(而非 by value)的方式來(lái)傳遞物件。
- 盡量寫(xiě)“a op = b;”而不要寫(xiě)成“a = a op b;”(其中 op 代表任何運(yùn)算子)。這樣不但比較清楚,通常也比較有效率。
- 如果提供了某個(gè)運(yùn)算子的標(biāo)準(zhǔn)版(例如 operator+),同時(shí)也應(yīng)該為它提供一份 assignment 版(例如 operator+=)并且以后者為基礎(chǔ)來(lái)實(shí)現(xiàn)前者。同時(shí)總是保存 op 和 op= 之間的自然關(guān)系(其中 op 代表任何運(yùn)算子)。
- 使用一下準(zhǔn)則來(lái)決定一個(gè)運(yùn)算子應(yīng)該是 member function 或應(yīng)該是個(gè) nonmember function:
- 一元運(yùn)算子應(yīng)該是 members。
- = () [] 和 -> 必須是members。
- assignment 版的運(yùn)算子(+= -= /= *= 等等)都必須是members。
- 其他所有二元運(yùn)算子都應(yīng)該是 nonmembers。
- 總是在 operator<< 和 operator>> 函數(shù)中傳回 stream references。
- 為了一致性,應(yīng)該總是以前置式累加運(yùn)算符為本,實(shí)現(xiàn)出后置式累加運(yùn)算符。
- 不要在變量名前面加上下劃線,因?yàn)闃?biāo)準(zhǔn)規(guī)個(gè)書(shū)中保留了某些“下劃線”開(kāi)頭的識(shí)別符號(hào)給編譯器使用。
文章來(lái)源:http://my.donews.com/robinchow/2007/01/11/jabxiufnsuhdoddxaufbdnewyegsorjxrkua/
posted on 2007-10-23 20:51 Robin Chow 閱讀(88) 評(píng)論(0) 編輯 收藏 引用