This document discusses programming functions in C++. It defines a function as a named block of code that performs an action. Functions are called by name and have unique names. They divide programs into reusable parts. Functions make code easier to code, modify, maintain and understand. Functions can be internal or external. Function definitions specify the return type, name, and parameters. Function declarations provide information to the compiler. Parameters provide values to functions. Local and global variables are discussed. Call by value and call by reference are compared. Register and static variables are also summarized. The document ends with an explanation of function overloading.