Function calls

Once a function has been declared and defined, it can be called from anywhere within the program: from within the main function, from another function, and even from itself. Calling the function involves specifying the function name, followed by the function call operator and any data values the function expects to receive. These values are the arguments for the parameters defined for the function, and the process just described is called passing arguments to the function.

C++ A function may not be called if it has not already been declared.

Passing arguments can be done in two ways:
  • Pass by value, which copies the value of an argument to the corresponding parameter in the called function
  • Pass by reference, which passes the address of an argument to the corresponding parameter in the called function

C++ Beginning of C++ only.

If a class has a destructor or a copy constructor that does more than a bitwise copy, passing a class object by value results in the construction of a temporary object that is actually passed by reference.

It is an error when a function argument is a class object and all of the following properties hold:
  • The class needs a copy constructor.
  • The class does not have a user-defined copy constructor.
  • A copy constructor cannot be generated for that class.

C++ End of C++ only.