Overloaded functions allow multiple functions with the same name but different parameter types. This improves readability and handles incorrect arguments. The document provides examples of overloaded averaging and calculator functions. Pass by reference passes a variable's address rather than value, allowing the original variable to be modified. Scope defines variable visibility - variables are destroyed when exiting a scope unless declared static or global. Practice questions demonstrate overloaded functions, pass by reference, scopes, and static/global variables.