90 likes | 259 Views
Functions. Robert Reaves. Functions. Interface – the formal description of what a subprogram does and how we communicate with it Encapsulation – Hiding a module implementation in a separate block with a formally specified interface.
E N D
Functions Robert Reaves
Functions • Interface – the formal description of what a subprogram does and how we communicate with it • Encapsulation – Hiding a module implementation in a separate block with a formally specified interface. • Module parameter list – a set of variables within a module that hold values that are either incoming to the module or outgoing to the caller, or both. • Data flow – the direction of flow of information between the caller and a module through each parameter.
Communicating with a module • Incoming values are values received from the caller. • Outgoing values are values produced and returned to the caller. • Incoming/outgoing values are values that the caller has that the module changes. (receives and returns.)
Writing functions • void x(); • This would come before main and is called the function prototype. • Must include the data types of the parameters for this function. • x(); • This would be invoked where ever you needed to call your function, called function call. • void x() { • // some code. • } • This would come after main and the “some code” would be what your function did. Called the function definition.
Void Functions • Do NOT return a value to caller. • void x() { // after the name is the parameter list, this one is empty. • // Some code here… • } • “void” signals the compiler that this is not a value-returning function. • Can use inside function: • return; // returns to the caller of the function immediately.
Function Parameters • The code between parentheses that looks like a variable declaration, called parameter declaration. • void x(int y, int t) { // int y and int t would be the parameter declaration. • // some code. • } • Argument is a variable or expression listed in a call to a function. • x(height, width); // height and width would be arguments. • Parameter is a variable declared in a function definition.
Local Variables • Local variable isa variable declared within a block and not accessible outside of that block. • void x(); • int main() { • int x = 5; // local variable to main. • x(); • return 0; • } • void x() { • cout << x << endl; // will say x is undefined, x is local to main. • }
Parameters • Value parameter – a parameter that receives a copy of the value of the corresponding argument. • void x(int y); // y is a value parameter. • Reference parameter – a parameter that receives the location (memory address) of the caller’s argument. • void x(int& y); // y is a reference parameter.
Documentation • Use preconditions and post-conditions as comments to document function interfaces. • Pre is an assertion describing everything the function requires to be true at the moment the caller invokes the function. • Post describes the state of the program the moment the function finishes executing. • // Pre: sum has been assigned and count is greater than 0. • // Post: The average has been output on one line. • void PrintAverage(float sum, int count) { • cout << “Average is “ << sum / float(count) << endl; • }