第48課 函式設計原則(完結)

2022-02-21 10:20:37 字數 479 閱讀 7945

1. 函式從意義上應該是乙個獨立的功能模組

2. 函式名要在一定程度上反映函式的功能

3. 函式引數要能夠體現引數的意義

4. 盡量避免在函式中使用全域性變數

5. 當函式引數不應該在函式體內部修改時,應加上const宣告

6. 如果引數是指標,且僅作輸入引數,則應加上const宣告

7. 不能省略返回值的型別

如果函式沒有返回值,那麼應宣告為void型別

8. 對引數進行有效性檢查

9. 不要返回指向「棧記憶體」的指標

10. 函式體的規模要小,盡量控制在80行**之內

11. 相同的輸入對應相同的輸出,避免函式帶有「記憶」功能

12. 避免函式有過多的引數,引數個數盡量控制在4個以內

13. 有時候函式不需要返回值,但為了增加靈活性,如支援鏈式表達,可以附加返回值

14. 函式名與返回值型別在語義上不可衝突

【優秀**賞析】

第48課 同名覆蓋引發的問題

1.1 子類物件可以 直接賦值 給父類物件 1.2 子類物件可以 直接初始化 父類物件 1.3 父類指標 可以直接指向子類物件 應該只能使用裡面相同的成員吧?1.4 父類引用 可以直接引用子類物件 子類物件的相容性 include include using namespace std class ...

第3 8課 如何設計遞迴函式

另外,本課程的 請戳這裡。遞迴不是 先有雞還是先有蛋的問題 也不是 從前有座山,山里有座廟 嚴格來說,遞迴應該不是演算法設計,而是演算法實現範疇的內容,因為它並不屬於任何一種演算法模式。作為演算法實現的一種常用形式,遞迴程式常常讓新手望而卻步。難在兩點,其一是相對於順序執行的線性 或重複執行的迴圈 ...

第26課 靜態成員函式

未完成的需求 統計在程式執行期間某個類的物件數目 保證程式的安全性 不能使用全域性變數 隨時可以獲取當前物件的數目 failure 假設程式中沒有test物件,你就無法獲取當前物件的數目。因為在上乙個程式中是使用物件去呼叫成員函式的,此時如果沒有物件,如何去呼叫呢?解決方案1 include cla...