###### tags: `sprout` # header files slide: https://hackmd.io/@i2y3z9dITSa_Q_7V7h-AoA/H1olBYIO8 --廖凰汝-- --- ```cpp= #include <iostream> int main() { std::cout<<"123"; } ``` How does compiler know std::cout ? ---- > iostream is a standard library <font color="#f37">header files</font> 當我們#include <iostream> 就等於把它的內容安插在include 的地方,使用std::cout時並不需要自己宣告與實作。 ---- ```cpp= #include <iostream> int add(int x, int y); int main() { std::cout << add(3, 4) << '\n'; } int add(int x, int y) { return x + y; } ``` ---- 如果我們要在很多個檔案裡面使用add function? > 每次都要宣告,實作 超麻煩 或者要更新add的內容? > 一次要改超多地方! ---- add.h: ```cpp= int add(int x, int y); ``` main.cpp: ```cpp= #include <iostream> #include "add.h" // 把add.h的內容插在這裡 int main() { std::cout << add(3, 4) << '\n'; return 0; } ``` add.cpp: ```cpp= int add(int x, int y) { return x + y; } ``` ---- ![](https://i.imgur.com/DUgxYxv.png) ---- 我們在main裡面使用add的時候,並不需要知道add背後怎麼被宣告與實做出來的。 像是一個自動販賣機,我們只需要按按鈕,付錢就可以得到飲料。不需要知道裡面怎麼運作。 ---- header files 通常包含 function, object 的宣告 但不會包含定義(實作方法)。 ---- demo
{"metaMigratedAt":"2023-06-15T06:46:21.550Z","metaMigratedFrom":"Content","title":"header files","breaks":true,"contributors":"[{\"id\":\"8b6cb7cf-d748-4d26-bf43-fed5ee1f80a0\",\"add\":1279,\"del\":204}]"}
    252 views