-
Default Arguments–Functions–STRUCTURED PROGRAMMING Course Notes
Default Arguments When a function is called repeatedly with the same arguments for a particular parameter, you can specify that such a parameter has a default argument. (default value to be passed to that parameter). When a program omits an argument for a parameter with a default argument, the compiler inserts the default value of that argument to be passed to the function call. Default arguments must be the rightmost (trailing) arguments in a function’s parameter list. Default arguments are typically specified in the function prototype. Note: Using default arguments can simplify writing function calls. However, some programmers feel that explicitly specifying all arguments is clearer. Note: If the default…
-
Inline Functions, References, & Reference Parameters–Functions–STRUCTURED PROGRAMMING Course Notes
In C++, an empty parameter list is specified by writing either ‘void’ or nothing in parenthesis. Ex: (void) -or- () Inline Functions Inline Functions–C++ provides inline functions to help reduce function call overhead–especially for small functions. Placing the qualifier ‘inline‘ before a function’s return type in the function definition “advises” the compiler to generate a copy of the function’s code in place to avoid a function call. Note: Any change to an ‘inline’ function requires all clients of the function to be recompiled. This can be significant in some program development & maintenance situations. Tip: The ‘inline’ qualifier should be used only with small, frequently used functions. Using ‘inline’ functions…
-
Function Call Stack & Activation Records–Functions–STRUCTURED PROGRAMMING Course Notes
Function Call Stack & Activation Records Stacks are known as ‘last-in, first-out‘ (LIFO) data structures–the last item pushed (inserted) on the stack is the first item popped (removed) from the stack. The function call stack supports the function call/return mechanism, & the creation, maintenance and destruction of each called function’s automatic variables. Each time a function calls another function, a stack frame, or an activation record, is pushed onto the stack containing the return address that the called function needs to return to the calling function, and the function call’s automatic variables & parameters. The stack frame exists as long as the called function is active. When the called function…
-
Scope Rules–Functions–STRUCTURED PROGRAMMING Course Notes
Scope Rules Unlike automatic variables, static local variables retain their values when the function in which they’re declared returns to its caller. An identifier declared outside any function or class has global namespace scope. Labels are the only identifiers with function scope. Labels can be used anywhere in the function in which they appear, but cannot be referenced outside the function body. (Labels are followed by a colon. ‘:’ ) Identifiers declared inside a block have local scope. Local scope begins at the identifiers declaration & ends at the terminating right brace (‘}’) of the block in which the identifier is declared. Identifiers in the parameter list of a function…
-
Storage Classes–Functions–STRUCTURED PROGRAMMING Course Notes
Storage Classes A storage class defines the scope (visibility) and life-time (existence) of variables and/or functions within a C++ program. C++ provides five storage-class specifiers: auto register extern mutable static An identifier’s storage class determines the period during which that identifier exists in memory. An identifier’s scope is where the identifier can be referenced in a program. And identifier’s linkage determines whether an identifier is known only in the source file where it’s declared, or across multiple files that are compiled then linked together. Note: Identifiers in C++ are the names assigned to variables and functions. The valid identifiers are declared using the alphabets from A to Z, a to…
-
Enumeration–Functions–STRUCTURED PROGRAMMING Course Notes
Enumeration Enumeration–an enumeration, introduced by the keyword ‘enum‘ and followed by a type name is a user-defined type. An enumeration is a set of named integer constants represented by identifiers. The values of these enumeration constants start at 0, unless specified otherwise, and increment by 1. A popular enumeration is: enum Months { Jan = 1, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC }; where: ‘enum‘ is the ‘keyword‘ ‘Months’ is the ‘identifier‘ ‘JAN’ thru ‘DEC’ are the ‘enumeration constant names‘ …which creates user-defined type ‘Months’ with enumeration constants representing the months of the year. The first value is explicitly specified to start at 1, so…
-
Random Number Generation–Functions–STRUCTURED PROGRAMMING Course Notes
Random Number Generation rand(); a C++ Standard Library function that generates an unsigned integer between 0 and RAND_MAX (a symbolic constant defined in the <cstdlib> header file). The function prototype for the ‘rand’ function is in <cstdlib>. rand()%6 to produce integers specifically in the range 0 to 5, for a dice-rolling game, for example, we use the modulus operator(%). This is called scaling. The number 6 is called the “scaling factor”. We would then shift the range of numbers produced by adding 1 to our previous result. ex: (1 + rand() % 6 ) srand() the function ‘srand‘ takes an unsigned integer argument and seeds the ‘rand‘ function to produce…
-
Functions–STRUCTURED PROGRAMMING Course Notes
Functions Experience has shown that the best way to develop & maintain a program is to construct it from small, simple pieces or components. This technique is called “divide & conquer”. Declare and use functions to facilitate the design, implementation, operation, and maintenance of large programs. Functions (aka methods, procedures, sub-routines) allow us to modularize a program by separating its tasks into self-contained units. We can use a combination of provided library functions or create out own functions, known as user-defined, or programmer-defined functions. The statements in function bodies are written only once but can be reused from perhaps several locations in a program and are hidden from other functions.…
-
Control Statements–STRUCTURED PROGRAMMING Course Notes
CONTROL STATEMENTS Theory & Principles of Structured Programming. These concepts presented here are crucial to building effective classes & manipulating objects. BEFORE writing a program to solve a problem, we must have a thorough understanding of the problem & a carefully planned approach to solving it. WHEN writing a program, we must also understand the types of building blocks that are available, & employ proven program construction techniques. An ALGORITHM is a procedure for solving a problem in terms of the actions to execute and the order in which to execute them. Specifying the order in which statements execute in a program is called PROGRAM CONTROL. Note: In addition to…