Upcoming SlideShare
×

# 3 functions and class

454 views

Published on

0 Likes
Statistics
Notes
• Full Name
Comment goes here.

Are you sure you want to Yes No
• Be the first to comment

• Be the first to like this

Views
Total views
454
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
14
0
Likes
0
Embeds 0
No embeds

No notes for slide

### 3 functions and class

1. 1. C++ Review: FUNCTIONS
2. 2. VOID FUNCTIONS <ul><li>#include <iostream.h> </li></ul><ul><li>void addoreven(); </li></ul><ul><li>int main() </li></ul><ul><li>{ </li></ul><ul><li>addoreven(); </li></ul><ul><li>cout << &quot;That's all! &quot;; </li></ul><ul><li>return 0; </li></ul><ul><li>} </li></ul><ul><li>void addoreven() </li></ul><ul><li>{ </li></ul><ul><li>int your_number; </li></ul><ul><li>cout << &quot;Enter a whole number: &quot;; </li></ul><ul><li>cin >> your_number; </li></ul><ul><li>if (your_number % 2 == 0) </li></ul><ul><li> cout << &quot;Your number is even &quot;; </li></ul><ul><li>else </li></ul><ul><li>{ </li></ul><ul><li> cout << &quot;Your number is odd. &quot;; </li></ul><ul><li>} </li></ul><ul><li>} </li></ul>
3. 3. FUNCTIONS that RETURN VALUES <ul><li>#include <iostream.h> </li></ul><ul><li>#include <conio.h> </li></ul><ul><li>// function square computes the square of x </li></ul><ul><li>int square (int x) </li></ul><ul><li>{ </li></ul><ul><li>return x * x; </li></ul><ul><li>} </li></ul><ul><li>// main is where program execution begins </li></ul><ul><li>void main () </li></ul><ul><li>{ </li></ul><ul><li>int i; </li></ul><ul><li>for (i = 0; i <= 20; i = i + 1) </li></ul><ul><li>{ </li></ul><ul><li>cout << &quot; value = &quot; << i << &quot; square = &quot; << square(i); </li></ul><ul><li>} </li></ul><ul><li>// wait for key pressure </li></ul><ul><li>getch(); </li></ul><ul><li>} </li></ul>
4. 4. PROGRAMMING EXERCISE: <ul><li>Using Functions that return values, create a program that converts Farenheit values from 2 to 222 (incremented by 2) to Celsius </li></ul><ul><li>To convert into Celsius, the following conversion factor is used: </li></ul><ul><ul><ul><li>Celsius = 5/9 * (Farenheit – 32) </li></ul></ul></ul>
5. 5. <ul><li>#include <iostream.h> </li></ul><ul><li>float celsius(float); </li></ul><ul><li>int main() </li></ul><ul><li>{ for (int x=2; x<232; x += 10) </li></ul><ul><li>cout << x << &quot; &quot; << celsius(x) << &quot; &quot;; </li></ul><ul><li>} </li></ul><ul><li>float celsius(float x) </li></ul><ul><li>{ return 5.0/9.0*(x-32); </li></ul><ul><li>} </li></ul>
6. 6. PROGRAMMING EXERCISE: <ul><li>Using Functions that return values, create a program that displays the factorial of 0 to 10. </li></ul><ul><li>Factorial example: </li></ul><ul><ul><li>5! = 5 * 4 * 3 * 2 * 1 </li></ul></ul>
7. 7. PROGRAMMING EXERCISE: <ul><li>Using Functions that return values, create a program that reverses a given input string </li></ul><ul><ul><li>e.g. Rhej Cachero </li></ul></ul><ul><ul><li>Output: orehcaC jehR </li></ul></ul>
8. 8. Class <ul><li>an expanded concept of a data structure: instead of holding only data, it can hold both data and functions. </li></ul><ul><li>a new kind of data type; each class that you define is a collection of data ( data members) plus the ability to include special functions (member functions). </li></ul>
9. 9. Class <ul><li>An object is an instantiation of a class. In terms of variables, a class would be the type, and an object would be the variable. </li></ul>
10. 10. <ul><li>Classes are generally declared using the keyword class, with the following format: </li></ul><ul><ul><ul><li>class class_name { access_specifier_1: member1; access_specifier_2: member2; ... } object_names; </li></ul></ul></ul><ul><li>Where class_name is a valid identifier for the class, object_names is an optional list of names for objects of this class. The body of the declaration can contain members, that can be either data or function declarations, and optionally access specifiers. </li></ul>Class
11. 11. Class <ul><li>An access specifier is one of the following three keywords: private , public or protected . These specifiers modify the access rights that the members following them acquire: </li></ul><ul><ul><li>private members of a class are accessible only from within other members of the same class </li></ul></ul><ul><ul><li>public members are accessible from anywhere where the object is visible. </li></ul></ul>
12. 12. Class <ul><li>By default, all members of a class declared with the class keyword have private access for all its members . Therefore, any member that is declared before one other class specifier automatically has private access. </li></ul>
13. 13. Class <ul><li>class CRectangle { </li></ul><ul><li>int x, y; </li></ul><ul><li>public: void set_values (int,int); </li></ul><ul><li>int area (void); } rect; </li></ul><ul><li>Declares a class (i.e., a type) called CRectangle and an object (i.e., a variable) of this class called rect . </li></ul><ul><li>This class contains four members: two data members of type int (member x and member y) with private access (because private is the default access level) and two member functions with public access: set_values() and area(), of which for now we have only included their declaration, not their definition. </li></ul>
14. 14. <ul><li>Notice the difference between the class name and the object name: In the previous example, CRectangle was the class name (i.e., the type), whereas rect was an object of type CRectangle. </li></ul><ul><li>It is the same relationship int and a have in the following declaration: </li></ul><ul><li>int a; </li></ul><ul><li>where int is the type name (the class) and a is the variable name (the object). </li></ul>
15. 15. <ul><li>After the previous declarations of CRectangle and rect , we can refer within the body of the program to any of the public members of the object rect as if they were normal functions or normal variables, just by putting the object's name followed by a dot (.) and then the name of the member. All very similar to what we did with plain data structures before. For example: </li></ul><ul><li>rect.set_values (3,4); </li></ul><ul><li>myarea = rect.area(); </li></ul>
16. 16. <ul><li>#include <iostream.h> </li></ul><ul><li>class CRectangle { </li></ul><ul><li>int x, y; </li></ul><ul><li>public: </li></ul><ul><li>void set_values (int,int); </li></ul><ul><li>int area () {return (x*y);} </li></ul><ul><li>}; </li></ul><ul><li>void CRectangle::set_values (int a, int b) { </li></ul><ul><li>x = a; </li></ul><ul><li>y = b; </li></ul><ul><li>} </li></ul><ul><li>void main () { </li></ul><ul><li>CRectangle rect; </li></ul><ul><li>rect.set_values (3,4); </li></ul><ul><li>cout << &quot;area: &quot; << rect.area(); } </li></ul>