1 / 25

CS 1400

CS 1400. Chap 6. Functions. General form; type Name ( parameters ) { … return value ; } parameters is a list of comma-separated declarations. More on functions…. Functions can be placed after boilerplate but before main() simplest after main() covered later

kessie-best
Télécharger la présentation

CS 1400

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CS 1400 Chap 6

  2. Functions • General form; typeName ( parameters ) { … return value ; } parametersis a list of comma-separated declarations

  3. More on functions… • Functions can be placed • after boilerplate but before main() simplest • after main() covered later • in another file covered later • A function has its own variables!

  4. types… • The return value of a function must match the function type. • Arguments passed to function parameters must match in type and in position. if either of these rules is neglected, the computer will force (cast) a match.

  5. Value passing… int MyFunc (float a, int b) { int temp = x+y; return temp; } int main() { float x=5.1; int z, y=21; z = MyFunc (x, y);

  6. Value passing diagrams… main() z x y 5.1 21 MyFunc() temp MyFunc (x, y); a b 5.1 21

  7. Examples: • Function Example Square cout << Square (21.6); Cube y = Cube (z); Max cout << Max (a, b); Abs y = Abs (x); PrintHead PrintHead(); GetBetween y = GetBetween (21, 80); Round cout << Round (3.567);

  8. Global variables… • Variables declared outside of main() or a function are globally accessible. int x; int main() { cout << x; … • Local variables may eclipse global variables int x; int main() { int x; cout << x; …

  9. Static variables… • Static variables retain their values when a function exits and are only created and initialized once void MyFunc () { static int counter = 0; cout << counter++; } int main() { MyFunc(); // outputs 0 MyFunc(); // outputs 1 MyFunc(); // outputs 2…

  10. Reference parameters… • A function using reference parameters can modify corresponding arguments void Swap (int &a, int &b) { int temp = a; a = b; b = temp; } int main() { … Swap (x, y); Swap (cost, rate);

  11. main() The value passed or copied into a reference parameter is a forwarding address… x y cost rate 5 9 12 39 Swap() temp Swap (x, y); a b see x in main() see y in main()

  12. main() Results… x y cost rate 5 9 12 39 9 5 Swap() temp 5 a b see x in main() see y in main()

  13. main() x y cost rate 9 5 12 39 Swap() temp a b Swap (cost, rate); see cost in main() see rate in main()

  14. Results… main() x y cost rate 9 5 12 39 39 12 Swap() temp 12 a b see cost in main() see rate in main()

  15. Example: Max() • The function Max() is intended to determine the maximum value of a list of N numbers input by the user (The argument N is provided by the caller).

  16. Example: MaxMin() • The function MaxMin() is intended to determine two values; the maximum and minimum values of a list of 10 numbers input by the user

  17. Functions need not return a value! • If a function does not return a value, its type is void and it does not need a return void MyFunc ( int a ) { cout << “the value is: “ << a; cout << “and the square is: “ << a*a; }

  18. Alternate function locations… • Functions can be placed below calling functions if the function prototype is above the other functions that call it. A prototype is the first line or title of a function – followed by a semicolon. • Functions can be placed in a separate file if the function prototype is above other functions that call it and the function file is included in the project

  19. Example A void Swap (int &a, int &b) { int temp = a; a = b; b = temp; } int main() { … // function Swap() is used here return 0; }

  20. Example B void Swap (int &a, int &b); // function prototype int main() { … // function Swap() is used here return 0; } void Swap (int &a, int &b) { int temp = a; a = b; b = temp; }

  21. Example C FILE A.cpp: void Swap (int &a, int &b); int main() { … // Swap used here return 0; } FILE B.cpp: void Swap (int &a, int &b) { int temp = a; a = b; b = temp; }

  22. Overloading functions… • Several functions may have the same name • Each function must have a unique signature • name • number and type of parameters Note that the return type of a function is not part of its signature!

  23. Default Arguments • A function may specify default values for parameters in its prototype. • Example: • Example function calls: int TotalPrice (float item_cost; float taxrate = 0.065; int count=1); cout << TotalPrice (5.98); cout << TotalPrice (7.95, 0.075); cout << TotalPrice (3.56, 0.055, 3);

  24. Default Arguments… • Only the last or ending arguments may have default values • Illegal: cout << TotalCost (4.68, , 4);

  25. Reference Parameters (bis) • All arguments for reference parameters must be simple variables – expressions are not allowed; int MyFunc (int x, int& y); … z = MyFunc (5+a, 7*b); Illegal! OK

More Related