AI Academy
促銷
CodeGym University
學習
課程
任務
問卷 & 測驗
遊戲
說明
行程
社群
用戶
論壇
聊天
文章
成功故事
動態
評價
訂閱
淺色主題
課程
評論
關於我們
開始
開始學習
立即開始學習
My Progress
Courses
任務地圖
課程
C++
C++
等級 14
認識函式
C++ SELF
等級 14,
課程 0
在本講中我們會討論為何在 C++ 中需要函式,以及如何用它們把一大塊程式碼變成易於理解的腳本:讓
main()
變「精簡」,把操作抽出到獨立函式,例如
print_menu()
、
read_line()
、
print_tasks()
、
add_task()
與
clear_tasks()
。以包含待辦清單的迷你應用(基於
std::vector<std::string>
)示例練習分解,學會如何劃定責任界限並避免常見錯誤(複製貼上、函式「一口氣做太多」、過於籠統的命名)。
函式簽章:參數與型別
C++ SELF
等級 14,
課程 1
在本次講義中我們解析 C++ 中的函式簽章:它由哪些部分構成(回傳型別、名稱、參數列表)、參數與引數有何不同、如何選擇回傳型別(
int
、
double
、
bool
、
void
、
std::string
)以及為何宣告順序對編譯器很重要。在小型專案「TextLab」中我們會組裝
main()
的流程,並觀察簽章如何使程式碼可讀且安全。
原型與程式碼順序
C++ SELF
等級 14,
課程 2
解析為何 C++ 編譯器從上到下讀取檔案,並且如果函式的宣告出現在呼叫處之後,編譯器會「看不到」該函式。我們將學會區分
宣告
(原型形式為
int
sum
(
int
,
int
)
;
)與
定義
(含函式體的實作),以及如何正確組織檔案:原型 →
main
→ 實作,並避免常見錯誤(遺漏
;
、簽名不一致、「函式 vs 變數」混淆、重複定義)。
return 與提前返回
C++ SELF
等級 14,
課程 3
在本講座中我們會分析 C++ 中的
return
運算子:形態
return
expr
;
與
return
;
有何差別、為何編譯器會要求「在所有路徑上返回值」對於回傳
int
/
bool
類型的函式很重要,以及提早返回(guard clauses)如何透過移除深層的
if
/
else
讓程式碼更簡潔。在搜尋循環與簡易 NoteKeeper 範例中,我們會看到如何寫出線性流程,以及如何在
main()
中正確以
0
或
1
結束程式。
覆載與預設參數
C++ SELF
等級 14,
課程 4
我們來拆解在 C++ 中讓函式 API 更好用的兩種方式:覆載(同一名稱的多個函式,但參數不同)與預設參數(為「典型」的尾端參數指定值)。以控制台應用 TaskPad 的幾個範例實作(
print_line()
,
print_menu()
,
read_line()
)說明編譯器選擇覆載的規則、不能僅根據回傳型別來覆載的限制,以及最主要的陷阱——當覆載與預設值混合使用時產生的二義性。
Please enable JavaScript to continue using this application.