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