Functions
The main() function is unusual among C++ functions because it’s called automatically when a program begins running.
A program is executed line by line in source code, beginning with the start of main(). When a function is called, the program branches off to execute the function. After the function has done its work, it returns control to the line where the function was called. Functions may or may not return a value, with the exception of main(), which always returns an integer.
Functions consist of a header and a body. The header consists of three things:
The type of data the function returns
The function’s name
The parameters received by the function
The function name is a short identifier that describes its purpose.
When a function does not return a value, it uses data type void, which means nothing. To clarify: void isn’t meaningless. It means “nothing,” like how stars in space are separated by a ginormous amount of nothing called “the void.”
Arguments are data sent to the function that control what it does. These arguments are received by the function as parameters. A function can have zero, one, or more parameters. The next program that you create has a function called add() that adds two numbers together. Here’s how it is declared:
int add(int x, int y) { // body of function goes here }
The parameters are organized within parentheses marks as a list separated by commas. In this function, the parameters are integers named x and y.
The name of a function, its parameters and the order of those parameters is called its signature. Like a person’s signature, the function’s signature uniquely identifies it.
A function with no parameters has an empty set of parentheses, as in this example:
int getServerStatus() { // body of function here }
Function names cannot contain spaces, so the getServerStatus() function capitalizes the first letter of each word after the first one. This naming convention is common among C++ programmers and adopted throughout this book.
The body of a function consists of an opening brace, zero or more statements, and a closing brace. A function that returns a value uses a return statement, as you’ve seen in the Motto program:
return 0;
The return statement causes a function to exit. If you don’t include at least one return statement in a function, it automatically returns void at the end of the function’s body. In that situation, void must be specified as the function’s return type.
Using Arguments with Functions
The Calculator.cpp program in Listing 2.2 fleshes out the aforementioned add() function, using it to add a pair of numbers together and display the results. This program demonstrates how to create a function that takes two integer arguments and returns an integer value.
LISTING 2.2 The Full Text of Calculator.cpp
1: #include <iostream> 2: 3: int add(int x, int y) 4: { 5: // add the numbers x and y together and return the sum 6: std::cout << "Running calculator ...\n"; 7: return (x+y); 8: } 9: 10: int main() 11: { 12: /* this program calls an add() function to add two different 13: sets of numbers together and display the results. The 14: add() function doesn't do anything unless it is called by 15: a line in the main() function. */ 16: std::cout << "What is 867 + 5309?\n"; 17: std::cout << "The sum is " << add(867, 5309) << "\n\n"; 18: std::cout << "What is 777 + 9311?\n"; 19: std::cout << "The sum is " << add(777, 9311) << "\n"; 20: return 0; 21: }
This program produces the following output:
What is 867 + 5309? Running calculator ... The sum is 6176 What is 777 + 9311? Running calculator ... The sum is 10088
The Calculator program includes a single-line comment on line 5 and a multi-line comment on lines 12–15. All comments are ignored by the compiler.
The add() function takes two integer parameters named x and y and adds them together in a return statement (lines 3–8).
The program’s execution begins in the main() function. The first statement in line 16 uses the object std::cout and the redirection operator << to display the text "What is 867 + 5309?" followed by a newline.
The next line displays the text "The sum is" and calls the add() function with the arguments 777 and 9311. The execution of the program branches off to the add() function, as you can tell in the output by the text "Running calculator...."
The integer value returned by the function is displayed along with two more newlines.
The process repeats for a different set of numbers in lines 18–19.
The formula (x+y) is an expression. You learn how to create these mathematical workhorses in Hour 4, “Using Expressions, Statements, and Operators.”