Presentation is loading. Please wait.

Presentation is loading. Please wait.

C++.

Similar presentations


Presentation on theme: "C++."— Presentation transcript:

1 C++

2 Functions built-in functions
function prototype, function definition and use storage class and scope recursion inline function default argument, function overloading, template

3 Math Library Functions
#include <cmath> // to use math // library On Unix, special compiler flag is needed gxx file.cpp -lm most math functions take double as argument and return double as value C.f. math.h

4 Math Functions ceil(x), cos(x), exp(x), fabs(x), floor(x), fmod(x,y), log(x), log10(x), pow(x,y), sin(x), sqrt(x), tan(x) For some compilers (such as GNU C++), there are also some special functions, such as err function, bessel function etc. C.f. Fig.3.2 h

5 Functions Organization of Large Program Typical Program
Separate tasks into functions Group related functions in separate files. Typical Program Prototypes; main() { … ;} func1() { …; } func2(int i, …) { … }

6 Functions Function prototype function definition use of function
argument passing in C++ C.f. Fig.3.3

7 Function Prototypes Format void maximum(int, int, int);
Location of function prototype in file When can we omit function prototype? Advantage of prototype

8 Storage Classes Storage class determines the period during which an identifier exists in memory Four storage classes auto, register, extern, static C.f. Fig. 3.12

9 Auto Storage Class Local variables in functions or blocks. Auto storage class variables are created only when the block is active, and disappear when the block or function exits.

10 Register Storage Class
Variable existence like auto. The register variable is a suggestion to the compiler to put the variable in a CPU register.

11 Static Storage Class Local static variable exists during the whole program executing, i.e., the variable retains its value between function calls. However, the reference to the variable is local in the function or block.

12 Extern Storage Class Global variables and function names have the storage class extern. Extern storage class variable exists during the whole program execution.

13 Scope Rules The places in code segment that an identifier is visible:
function scope file scope block scope function-prototype scope class scope

14 Storage Class and Scope
Storage class says when a variable exists scope says where in program segment the variable is valid for reference

15 Unary Scope Resolution Operator ::
Using ::, one can access an global variable even if it is over- shadowed by a local variable of the same name.

16 Recursion A function can also call itself, this is known as recursion
To avoid infinite recursion, one must have a terminating condition in the function recursion v.s. iteration C.f. Fig.3.14

17 Inline Functions Advantage: function call overhead is eliminated, thus faster and less memory consuming Disadvantage: the code is expanded during compilation so that executable file is large C.f. Fig. 3.19

18 Call by Value v.s. Call by Reference
Call-by-value: the function takes/works on a copy of the original variable Call-by-reference: the function works on the original variable passed by caller. C.f. Fig. 3.20

19 Call by Reference int func(int &); // prototype int main() {
func(x); // call as usual } int func(int &x) // x is ref to int x = ..; // use x as usual

20 Call by Reference Using Pointer
int func(int *); // prototype int main() { func(&x); // call as usual } int func(int *x) // x is ref to int *x = ..; // use x as usual

21 Default Arguments The right-most arguments, if omitted, take the default value Default values are specified at the first occurrence (prototype or function definition) of the function C.f. Fig.3.23

22 Function Overloading Several functions of different argument types can use the same function name. E.g. we can define a function square to work on int as well as on double. In fact, we need to write two functions to handle two cases. C.f. 3.25

23 Function Template A function definition with unspecified data type.
The type is determined according to its use at compile time.

24 Exercise, p.243, 3.22 Write a function that displays at the left margin of the screen a solid square of asterisks whose side is specified in integer parameter side. E.g. side = 4 displays ****

25 Exercise, p.245, 3.32 & p.248, 3.45 The greatest common divisor (GCD) of two integers is the largest integer that evenly divides each of the numbers. Write a function gcd() that returns the greatest common divisor of two integers.


Download ppt "C++."

Similar presentations


Ads by Google