Functions in C++ can be defined and called in various ways. The main() function is the entry point of a C++ program and returns an int value. Function prototypes declare the signature of functions without defining the body, allowing for forward declaration. Arguments can be passed by reference, allowing the called function to modify the original variables. Functions can return values by reference as well. Inline functions avoid the overhead of a function call by expanding the body directly where called.