A declaration tells the compiler a function exists. A definition provides the code. Declare with signature and semicolon: int add(int a, int b);. Define with body: int add(int a, int b) { return a + b; }.
Why split? C++ reads top to bottom. If you call before defining, the compiler doesn't know it exists. Declare at the top, define later. Common pattern: declarations go in headers, definitions in source files.
Include the header when you need the functions.