第25條 正確地選擇通過值、(智慧型)指標或者引用傳遞引數
摘要:正確選擇引數,分清輸入引數、輸出引數和輸入/輸出引數,分清值引數和引用引數。正確的傳遞引數。
選擇引數的準則:
對只輸入引數
始終用const限制所有指向只輸入引數的指標和引用
優先通過值來取得原始型別和複製開銷比較低的值物件的輸入。
優先按const的引用取得其他使用者定義型別的輸入
如果函式需要其引數的副本,則可以考慮通過值傳遞代替通過引用傳遞
對輸出引數或者輸入/輸出引數:
如果引數是可選的或者函式需要儲存這個指標的副本或者操控引數的所有權,那麼應該優先通過(智慧型)指標傳遞。
如果引數是必須的,而且函式無需儲存指向引數的指標或者無需操控引數的所有權,則應該優先通過引用傳遞
第26條 保持過載操作符的自然語義
摘要:只有在有充分理由時才過載操作符,而且應該保持其自然語義。
第27條 優先使用算術操作符和賦值操作符的標準形式
摘要:如果要定義a+b,也應該定義a+=b,在定義二元算術操作符時,也應該提供操作符的賦值形式,並且應該儘量減少重複,提高效率。
第28條 優先使用++和- -的標準形式。優先呼叫字首形式
第29條 考慮過載以避免隱含型別轉換
摘要:隱式型別轉換提供了語法上的便利,但是如果建立臨時物件的工作並不必要而且適於優化,那麼可以提供簽名與常見引數型別精確匹配的過載函式,而且不會導致轉換。
第30條 避免過載&&、||或 ,(逗號)
第31條 不要編寫依賴於函式引數求值順序的**
摘要:函式引數的求職順序是不確定的,因此不要依賴具體的順序。
C 程式設計規範之函式與操作符
函式與操作符 第25條 正確地選擇通過值 智慧型 指標或者引用傳遞引數 摘要 正確的選擇引數 尤其要分清引數傳遞的性質。對於輸入引數,可以盡量使用const型別,變數可以使用const變數,因為變數複製的代價是極小的 至於物件可以使用const指標或者引用的方式進行傳遞。這樣可以減少複製帶來的代價。...
程式設計思想之操作符
1.賦值操作符 assignment operator 賦值使用操作符 它的意思是 取右邊額值,把它複製給左邊 右邊可以是任何常數 變數或者表示式,但左邊必須是乙個明確的 已命名的變數。不能把任何東西賦給乙個常數,常數不能作為左值 比如不能說4 a 基本型別儲存了實際的數值,而並非指向乙個物件的引用...
C 函式過載操作符
c 可以對操作符 operator 進行過載,一般定義在類的成員函式中,以下面的 為例.class point 定義乙個類模板 建構函式 point 析構函式 過載算術操作符 類似 point operator const point other 過載關係操作符 類似 bool operator c...