This document discusses C++ functions. It defines standard functions that come with C++ and user-defined functions. It explains the structure of a C++ function including the function header and body. It discusses declaring function signatures separately from implementations. Parameters and scopes are also covered. Examples are provided of standard math and character functions as well as user-defined functions. Header files for organizing function declarations and implementation files are demonstrated.
Types of C++ functions:
Standard functions
User-defined functions
C++ function structure
Function signature
Function body
Declaring and Implementing C++ functions
It tells about functions in C++,Types,Use,prototype,declaration,Arguments etc
function with
A function with no parameter and no return value
A function with parameter and no return value
A function with parameter and return value
A function without parameter and return value
Call by value and address
Types of C++ functions:
Standard functions
User-defined functions
C++ function structure
Function signature
Function body
Declaring and Implementing C++ functions
It tells about functions in C++,Types,Use,prototype,declaration,Arguments etc
function with
A function with no parameter and no return value
A function with parameter and no return value
A function with parameter and return value
A function without parameter and return value
Call by value and address
Functions in C++, this presentation will cover the following topics
• Functions
• Functions Basics
• Overloaded functions
o Different numbers of arguments
o Different kinds of arguments
Revision Fucntion overloading
• Inline functions
• Default arguments
Call by value or call by reference in C++Sachin Yadav
Call by value means passing the value directly to a function. The called function uses the value in a local variable; any changes to it DO NOT affect the source variable. In call by value method, the called function creates its own copies of original values sent to it. Any changes, that are made, occur on the function’s copy of values and are not reflected back to the calling function.
Functions in C++, this presentation will cover the following topics
• Functions
• Functions Basics
• Overloaded functions
o Different numbers of arguments
o Different kinds of arguments
Revision Fucntion overloading
• Inline functions
• Default arguments
Call by value or call by reference in C++Sachin Yadav
Call by value means passing the value directly to a function. The called function uses the value in a local variable; any changes to it DO NOT affect the source variable. In call by value method, the called function creates its own copies of original values sent to it. Any changes, that are made, occur on the function’s copy of values and are not reflected back to the calling function.
This is an overview of C++ (based on 1999 / 2003 standard) and its use in Object Oriented Programming. The presentation assumes that the audience knows C programming.
The aim of this list of programming languages is to include all notable programming languages in existence, both those in current use and ... Note: This page does not list esoteric programming languages. .... Computer programming portal ...
Programming Fundamentals Functions in C and typesimtiazalijoono
Programming Fundamentals
Functions in C
Lecture Outline
• Functions
• Function declaration
• Function call
• Function definition
– Passing arguments to function
1) Passing constants
2) Passing variables
– Pass by value
– Returning values from functions
• Preprocessor directives
• Local and external variables
2024.06.01 Introducing a competency framework for languag learning materials ...Sandy Millin
http://sandymillin.wordpress.com/iateflwebinar2024
Published classroom materials form the basis of syllabuses, drive teacher professional development, and have a potentially huge influence on learners, teachers and education systems. All teachers also create their own materials, whether a few sentences on a blackboard, a highly-structured fully-realised online course, or anything in between. Despite this, the knowledge and skills needed to create effective language learning materials are rarely part of teacher training, and are mostly learnt by trial and error.
Knowledge and skills frameworks, generally called competency frameworks, for ELT teachers, trainers and managers have existed for a few years now. However, until I created one for my MA dissertation, there wasn’t one drawing together what we need to know and do to be able to effectively produce language learning materials.
This webinar will introduce you to my framework, highlighting the key competencies I identified from my research. It will also show how anybody involved in language teaching (any language, not just English!), teacher training, managing schools or developing language learning materials can benefit from using the framework.
Acetabularia Information For Class 9 .docxvaibhavrinwa19
Acetabularia acetabulum is a single-celled green alga that in its vegetative state is morphologically differentiated into a basal rhizoid and an axially elongated stalk, which bears whorls of branching hairs. The single diploid nucleus resides in the rhizoid.
The French Revolution, which began in 1789, was a period of radical social and political upheaval in France. It marked the decline of absolute monarchies, the rise of secular and democratic republics, and the eventual rise of Napoleon Bonaparte. This revolutionary period is crucial in understanding the transition from feudalism to modernity in Europe.
For more information, visit-www.vavaclasses.com
A Strategic Approach: GenAI in EducationPeter Windle
Artificial Intelligence (AI) technologies such as Generative AI, Image Generators and Large Language Models have had a dramatic impact on teaching, learning and assessment over the past 18 months. The most immediate threat AI posed was to Academic Integrity with Higher Education Institutes (HEIs) focusing their efforts on combating the use of GenAI in assessment. Guidelines were developed for staff and students, policies put in place too. Innovative educators have forged paths in the use of Generative AI for teaching, learning and assessments leading to pockets of transformation springing up across HEIs, often with little or no top-down guidance, support or direction.
This Gasta posits a strategic approach to integrating AI into HEIs to prepare staff, students and the curriculum for an evolving world and workplace. We will highlight the advantages of working with these technologies beyond the realm of teaching, learning and assessment by considering prompt engineering skills, industry impact, curriculum changes, and the need for staff upskilling. In contrast, not engaging strategically with Generative AI poses risks, including falling behind peers, missed opportunities and failing to ensure our graduates remain employable. The rapid evolution of AI technologies necessitates a proactive and strategic approach if we are to remain relevant.
How to Make a Field invisible in Odoo 17Celine George
It is possible to hide or invisible some fields in odoo. Commonly using “invisible” attribute in the field definition to invisible the fields. This slide will show how to make a field invisible in odoo 17.
Welcome to TechSoup New Member Orientation and Q&A (May 2024).pdfTechSoup
In this webinar you will learn how your organization can access TechSoup's wide variety of product discount and donation programs. From hardware to software, we'll give you a tour of the tools available to help your nonprofit with productivity, collaboration, financial management, donor tracking, security, and more.
Safalta Digital marketing institute in Noida, provide complete applications that encompass a huge range of virtual advertising and marketing additives, which includes search engine optimization, virtual communication advertising, pay-per-click on marketing, content material advertising, internet analytics, and greater. These university courses are designed for students who possess a comprehensive understanding of virtual marketing strategies and attributes.Safalta Digital Marketing Institute in Noida is a first choice for young individuals or students who are looking to start their careers in the field of digital advertising. The institute gives specialized courses designed and certification.
for beginners, providing thorough training in areas such as SEO, digital communication marketing, and PPC training in Noida. After finishing the program, students receive the certifications recognised by top different universitie, setting a strong foundation for a successful career in digital marketing.
Introduction to AI for Nonprofits with Tapp NetworkTechSoup
Dive into the world of AI! Experts Jon Hill and Tareq Monaur will guide you through AI's role in enhancing nonprofit websites and basic marketing strategies, making it easy to understand and apply.
2. 22
AgendaAgenda
What is a function?What is a function?
Types of C++Types of C++
functions:functions:
Standard functionsStandard functions
User-defined functionsUser-defined functions
C++ function structureC++ function structure
Function signatureFunction signature
Function bodyFunction body
Declaring andDeclaring and
Implementing C++Implementing C++
functionsfunctions
Sharing data amongSharing data among
functions throughfunctions through
function parametersfunction parameters
Value parametersValue parameters
Reference parametersReference parameters
Const referenceConst reference
parametersparameters
Scope of variablesScope of variables
Local VariablesLocal Variables
Global variableGlobal variable
3. 33
Functions and subprogramsFunctions and subprograms
The Top-down design appeoach is based on dividing theThe Top-down design appeoach is based on dividing the
main problem into smaller tasks which may be dividedmain problem into smaller tasks which may be divided
into simpler tasks, then implementing each simple taskinto simpler tasks, then implementing each simple task
by a subprogram or a functionby a subprogram or a function
A C++ function or a subprogram is simply a chunk of C+A C++ function or a subprogram is simply a chunk of C+
+ code that has+ code that has
A descriptive function name, e.g.A descriptive function name, e.g.
computeTaxescomputeTaxes to compute the taxes for an employeeto compute the taxes for an employee
isPrimeisPrime to check whether or not a number is a prime numberto check whether or not a number is a prime number
A returning valueA returning value
The cThe computeTaxesomputeTaxes function may return with a double numberfunction may return with a double number
representing the amount of taxesrepresenting the amount of taxes
TheThe isPrimeisPrime function may return with a Boolean value (true or false)function may return with a Boolean value (true or false)
4. 44
C++ Standard FunctionsC++ Standard Functions
C++ language is shipped with a lot of functionsC++ language is shipped with a lot of functions
which are known as standard functionswhich are known as standard functions
These standard functions are groups in differentThese standard functions are groups in different
libraries which can be included in the C++libraries which can be included in the C++
program, e.g.program, e.g.
Math functions are declared in <math.h> libraryMath functions are declared in <math.h> library
Character-manipulation functions are declared inCharacter-manipulation functions are declared in
<ctype.h> library<ctype.h> library
C++ is shipped with more than 100 standard libraries,C++ is shipped with more than 100 standard libraries,
some of them are very popular such as <iostream.h>some of them are very popular such as <iostream.h>
and <stdlib.h>, others are very specific to certainand <stdlib.h>, others are very specific to certain
hardware platform, e.g. <limits.h> and <largeInt.h>hardware platform, e.g. <limits.h> and <largeInt.h>
5. 55
Example of UsingExample of Using
Standard C++ Math FunctionsStandard C++ Math Functions
#include <iostream.h>#include <iostream.h>
#include <math.h>#include <math.h>
void main()void main()
{{
// Getting a double value// Getting a double value
double x;double x;
cout << "Please enter a real number: ";cout << "Please enter a real number: ";
cin >> x;cin >> x;
// Compute the ceiling and the floor of the real number// Compute the ceiling and the floor of the real number
cout << "The ceil(" << x << ") = " << ceil(x) << endl;cout << "The ceil(" << x << ") = " << ceil(x) << endl;
cout << "The floor(" << x << ") = " << floor(x) << endl;cout << "The floor(" << x << ") = " << floor(x) << endl;
}}
6. 66
Example of UsingExample of Using
Standard C++ Character FunctionsStandard C++ Character Functions
#include <iostream.h> // input/output handling#include <iostream.h> // input/output handling
#include <ctype.h> // character type functions#include <ctype.h> // character type functions
void main()void main()
{{
char ch;char ch;
cout << "Enter a character: ";cout << "Enter a character: ";
cin >> ch;cin >> ch;
cout << "The toupper(" << ch << ") = " << (char) toupper(ch) << endl;cout << "The toupper(" << ch << ") = " << (char) toupper(ch) << endl;
cout << "The tolower(" << ch << ") = " << (char) tolower(ch) << endl;cout << "The tolower(" << ch << ") = " << (char) tolower(ch) << endl;
if (isdigit(ch))if (isdigit(ch))
cout << "'" << ch <<"' is a digit!n";cout << "'" << ch <<"' is a digit!n";
elseelse
cout << "'" << ch <<"' is NOT a digit!n";cout << "'" << ch <<"' is NOT a digit!n";
}}
Explicit casting
7. 77
User-Defined C++ FunctionsUser-Defined C++ Functions
Although C++ is shipped with a lot of standardAlthough C++ is shipped with a lot of standard
functions, these functions are not enough for allfunctions, these functions are not enough for all
users, therefore, C++ provides its users with ausers, therefore, C++ provides its users with a
way to define their own functions (or user-way to define their own functions (or user-
defined function)defined function)
For example, the <math.h> library does notFor example, the <math.h> library does not
include a standard function that allows users toinclude a standard function that allows users to
round a real number to the iround a real number to the ithth
digits, therefore, wedigits, therefore, we
must declare and implement this functionmust declare and implement this function
ourselvesourselves
8. 88
How to define a C++ Function?How to define a C++ Function?
Generally speaking, we define a C++Generally speaking, we define a C++
function in two steps (preferably but notfunction in two steps (preferably but not
mandatory)mandatory)
Step #1 – declare theStep #1 – declare the function signaturefunction signature inin
either a header file (.h file) or before the maineither a header file (.h file) or before the main
function of the programfunction of the program
Step #2 – Implement the function in either anStep #2 – Implement the function in either an
implementation file (.cpp) or after the mainimplementation file (.cpp) or after the main
functionfunction
9. 99
What is The Syntactic Structure ofWhat is The Syntactic Structure of
a C++ Function?a C++ Function?
A C++ function consists of two partsA C++ function consists of two parts
The function header, andThe function header, and
The function bodyThe function body
The function header has the followingThe function header has the following
syntaxsyntax
<return value> <name> (<parameter list>)<return value> <name> (<parameter list>)
The function body is simply a C++ codeThe function body is simply a C++ code
enclosed between { }enclosed between { }
10. 1010
Example of User-definedExample of User-defined
C++ FunctionC++ Function
double computeTax(double income)double computeTax(double income)
{{
if (income < 5000.0) return 0.0;if (income < 5000.0) return 0.0;
double taxes = 0.07 * (income-5000.0);double taxes = 0.07 * (income-5000.0);
return taxes;return taxes;
}}
11. 1111
double computeTax(double income)double computeTax(double income)
{{
if (income < 5000.0) return 0.0;if (income < 5000.0) return 0.0;
double taxes = 0.07 * (income-5000.0);double taxes = 0.07 * (income-5000.0);
return taxes;return taxes;
}}
Example of User-definedExample of User-defined
C++ FunctionC++ Function
Function
header
12. 1212
Example of User-definedExample of User-defined
C++ FunctionC++ Function
double computeTax(double income)double computeTax(double income)
{{
if (income < 5000.0) return 0.0;if (income < 5000.0) return 0.0;
double taxes = 0.07 * (income-5000.0);double taxes = 0.07 * (income-5000.0);
return taxes;return taxes;
}}
Function
header
Function
body
13. 1313
Function SignatureFunction Signature
The function signature is actually similar toThe function signature is actually similar to
the function header except in two aspects:the function header except in two aspects:
The parameters’ names may not be specifiedThe parameters’ names may not be specified
in the function signaturein the function signature
The function signature must be ended by aThe function signature must be ended by a
semicolonsemicolon
ExampleExample
double computeTaxes(double) ;double computeTaxes(double) ;
Unnamed
Parameter
Semicolon
;
14. 1414
Why Do We Need FunctionWhy Do We Need Function
Signature?Signature?
For Information HidingFor Information Hiding
If you want to create your own library and share it withIf you want to create your own library and share it with
your customers without letting them know theyour customers without letting them know the
implementation details, you should declare all theimplementation details, you should declare all the
function signatures in a header (.h) file and distributefunction signatures in a header (.h) file and distribute
the binary code of the implementation filethe binary code of the implementation file
For Function AbstractionFor Function Abstraction
By only sharing the function signatures, we have theBy only sharing the function signatures, we have the
liberty to change the implementation details from timeliberty to change the implementation details from time
to time toto time to
Improve function performanceImprove function performance
make the customers focus on the purpose of the function, notmake the customers focus on the purpose of the function, not
its implementationits implementation
15. 1515
ExampleExample
#include <iostream>#include <iostream>
#include <string>#include <string>
using namespace std;using namespace std;
// Function Signature// Function Signature
double getIncome(string);double getIncome(string);
double computeTaxes(double);double computeTaxes(double);
void printTaxes(double);void printTaxes(double);
void main()void main()
{{
// Get the income;// Get the income;
double income = getIncome("Please enterdouble income = getIncome("Please enter
the employee income: ");the employee income: ");
// Compute Taxes// Compute Taxes
double taxes = computeTaxes(income);double taxes = computeTaxes(income);
// Print employee taxes// Print employee taxes
printTaxes(taxes);printTaxes(taxes);
}}
double computeTaxes(double income)double computeTaxes(double income)
{{
if (income<5000) return 0.0;if (income<5000) return 0.0;
return 0.07*(income-5000.0);return 0.07*(income-5000.0);
}}
double getIncome(string prompt)double getIncome(string prompt)
{{
cout << prompt;cout << prompt;
double income;double income;
cin >> income;cin >> income;
return income;return income;
}}
void printTaxes(double taxes)void printTaxes(double taxes)
{{
cout << "The taxes is $" << taxes << endl;cout << "The taxes is $" << taxes << endl;
}}
16. 1616
Building Your LibrariesBuilding Your Libraries
It is a good practice to build libraries to beIt is a good practice to build libraries to be
used by you and your customersused by you and your customers
In order to build C++ libraries, you shouldIn order to build C++ libraries, you should
be familiar withbe familiar with
How to create header files to store functionHow to create header files to store function
signaturessignatures
How to create implementation files to storeHow to create implementation files to store
function implementationsfunction implementations
How to include the header file to yourHow to include the header file to your
program to use your user-defined functionsprogram to use your user-defined functions
17. 1717
C++ Header FilesC++ Header Files
The C++ header files must have .hThe C++ header files must have .h
extension and should have the followingextension and should have the following
structurestructure
#ifndef compiler directive#ifndef compiler directive
#define compiler directive#define compiler directive
May include some other header filesMay include some other header files
All functions signatures with some commentsAll functions signatures with some comments
about their purposes, their inputs, and outputsabout their purposes, their inputs, and outputs
#endif compiler directive#endif compiler directive
18. 1818
TaxesRules Header fileTaxesRules Header file
#ifndef _TAXES_RULES_#ifndef _TAXES_RULES_
#define _TAXES_RULES_#define _TAXES_RULES_
#include <iostream>#include <iostream>
#include <string>#include <string>
using namespace std;using namespace std;
double getIncome(string);double getIncome(string);
// purpose -- to get the employee// purpose -- to get the employee
incomeincome
// input -- a string prompt to be// input -- a string prompt to be
displayed to the userdisplayed to the user
// output -- a double value// output -- a double value
representing the incomerepresenting the income
double computeTaxes(double);double computeTaxes(double);
// purpose -- to compute the taxes for// purpose -- to compute the taxes for
a given incomea given income
// input -- a double value// input -- a double value
representing the incomerepresenting the income
// output -- a double value// output -- a double value
representing the taxesrepresenting the taxes
void printTaxes(double);void printTaxes(double);
// purpose -- to display taxes to the// purpose -- to display taxes to the
useruser
// input -- a double value// input -- a double value
representing the taxesrepresenting the taxes
// output -- None// output -- None
#endif#endif
20. 2020
Main Program FileMain Program File
#include "TaxesRules.h"#include "TaxesRules.h"
void main()void main()
{{
// Get the income;// Get the income;
double income =double income =
getIncome("Please enter the employee income: ");getIncome("Please enter the employee income: ");
// Compute Taxes// Compute Taxes
double taxes = computeTaxes(income);double taxes = computeTaxes(income);
// Print employee taxes// Print employee taxes
printTaxes(taxes);printTaxes(taxes);
}}
21. 2121
Inline FunctionsInline Functions
Sometimes, we use the keywordSometimes, we use the keyword inlineinline to defineto define
user-defined functionsuser-defined functions
Inline functions are very small functions, generally,Inline functions are very small functions, generally,
one or two lines of codeone or two lines of code
Inline functions are very fast functions compared toInline functions are very fast functions compared to
the functions declared without the inline keywordthe functions declared without the inline keyword
ExampleExample
inlineinline double degrees( double radian)double degrees( double radian)
{{
return radian * 180.0 / 3.1415;return radian * 180.0 / 3.1415;
}}
22. 2222
Example #1Example #1
Write a function to test if a number is anWrite a function to test if a number is an
odd numberodd number
inline bool odd (int x)inline bool odd (int x)
{{
return (x % 2 == 1);return (x % 2 == 1);
}}
23. 2323
Example #2Example #2
Write a function to compute the distanceWrite a function to compute the distance
between two points (x1, y1) and (x2, y2)between two points (x1, y1) and (x2, y2)
Inline double distance (double x1, double y1,Inline double distance (double x1, double y1,
double x2, double y2)double x2, double y2)
{{
return sqrt(pow(x1-x2,2)+pow(y1-y2,2));return sqrt(pow(x1-x2,2)+pow(y1-y2,2));
}}
24. 2424
Example #3Example #3
Write a function to compute n!Write a function to compute n!
int factorial( int n)int factorial( int n)
{{
int product=1;int product=1;
for (int i=1; i<=n; i++) product *= i;for (int i=1; i<=n; i++) product *= i;
return product;return product;
}}
25. 2525
Example #4Example #4
Function OverloadingFunction Overloading
Write functions to return with the maximum number ofWrite functions to return with the maximum number of
two numberstwo numbers
inline int max( int x, int y)inline int max( int x, int y)
{{
if (x>y) return x; else return y;if (x>y) return x; else return y;
}}
inline double max( double x, double y)inline double max( double x, double y)
{{
if (x>y) return x; else return y;if (x>y) return x; else return y;
}}
An overloaded
function is a
function that is
defined more than
once with different
data types or
different number
of parameters
26. 2626
Sharing Data AmongSharing Data Among
User-Defined FunctionsUser-Defined Functions
There are two ways to share dataThere are two ways to share data
among different functionsamong different functions
Using global variables (very bad practice!)Using global variables (very bad practice!)
Passing data through function parametersPassing data through function parameters
Value parametersValue parameters
Reference parametersReference parameters
Constant reference parametersConstant reference parameters
27. 2727
C++ VariablesC++ Variables
A variable is a place in memory that hasA variable is a place in memory that has
A name or identifier (e.g. income, taxes, etc.)A name or identifier (e.g. income, taxes, etc.)
A data type (e.g. int, double, char, etc.)A data type (e.g. int, double, char, etc.)
A size (number of bytes)A size (number of bytes)
A scope (the part of the program code that can use it)A scope (the part of the program code that can use it)
Global variables – all functions can see it and using itGlobal variables – all functions can see it and using it
Local variables – only the function that declare localLocal variables – only the function that declare local
variables see and use these variablesvariables see and use these variables
A life time (the duration of its existence)A life time (the duration of its existence)
Global variables can live as long as the program is executedGlobal variables can live as long as the program is executed
Local variables are lived only when the functions that defineLocal variables are lived only when the functions that define
these variables are executedthese variables are executed
28. 2828
I. Using Global VariablesI. Using Global Variables
#include <iostream.h>#include <iostream.h>
int x = 0;int x = 0;
void f1() { x++; }void f1() { x++; }
void f2() { x+=4; f1(); }void f2() { x+=4; f1(); }
void main()void main()
{{
f2();f2();
cout << x << endl;cout << x << endl;
}}
29. 2929
I. Using Global VariablesI. Using Global Variables
#include <iostream.h>#include <iostream.h>
int x = 0;int x = 0;
void f1() { x++; }void f1() { x++; }
void f2() { x+=4; f1(); }void f2() { x+=4; f1(); }
void main()void main()
{{
f2();f2();
cout << x << endl;cout << x << endl;
}}
x 0
30. 3030
I. Using Global VariablesI. Using Global Variables
#include <iostream.h>#include <iostream.h>
int x = 0;int x = 0;
void f1() { x++; }void f1() { x++; }
void f2() { x+=4; f1(); }void f2() { x+=4; f1(); }
void main()void main()
{{
f2();f2();
cout << x << endl;cout << x << endl;
}}
x 0
void main()void main()
{{
f2();f2();
cout << x << endl ;cout << x << endl ;
}}
1
31. 3131
I. Using Global VariablesI. Using Global Variables
#include <iostream.h>#include <iostream.h>
int x = 0;int x = 0;
void f1() { x++; }void f1() { x++; }
void f2() { x+=4; f1(); }void f2() { x+=4; f1(); }
void main()void main()
{{
f2();f2();
cout << x << endl;cout << x << endl;
}}
x 0
void main()void main()
{{
f2();f2();
cout << x << endl ;cout << x << endl ;
}}
1
void f2()void f2()
{{
x += 4;x += 4;
f1();f1();
}}
2
4
32. 3232
45
I. Using Global VariablesI. Using Global Variables
#include <iostream.h>#include <iostream.h>
int x = 0;int x = 0;
void f1() { x++; }void f1() { x++; }
void f2() { x+=4; f1(); }void f2() { x+=4; f1(); }
void main()void main()
{{
f2();f2();
cout << x << endl;cout << x << endl;
}}
x
void main()void main()
{{
f2();f2();
cout << x << endl ;cout << x << endl ;
}}
1
void f2()void f2()
{{
x += 4;x += 4;
f1();f1();
}}
3
void f1()void f1()
{{
x++;x++;
}}
4
33. 3333
45
I. Using Global VariablesI. Using Global Variables
#include <iostream.h>#include <iostream.h>
int x = 0;int x = 0;
void f1() { x++; }void f1() { x++; }
void f2() { x+=4; f1(); }void f2() { x+=4; f1(); }
void main()void main()
{{
f2();f2();
cout << x << endl;cout << x << endl;
}}
x
void main()void main()
{{
f2();f2();
cout << x << endl;cout << x << endl;
}}
1
void f2()void f2()
{{
x += 4;x += 4;
f1();f1();
}}
3
void f1()void f1()
{{
x++;x++;
}}5
34. 3434
45
I. Using Global VariablesI. Using Global Variables
#include <iostream.h>#include <iostream.h>
int x = 0;int x = 0;
void f1() { x++; }void f1() { x++; }
void f2() { x+=4; f1(); }void f2() { x+=4; f1(); }
void main()void main()
{{
f2();f2();
cout << x << endl;cout << x << endl;
}}
x
void main()void main()
{{
f2();f2();
cout << x << endl;cout << x << endl;
}}
1
void f2()void f2()
{{
x += 4;x += 4;
f1();f1();
}}6
35. 3535
45
I. Using Global VariablesI. Using Global Variables
#include <iostream.h>#include <iostream.h>
int x = 0;int x = 0;
void f1() { x++; }void f1() { x++; }
void f2() { x+=4; f1(); }void f2() { x+=4; f1(); }
void main()void main()
{{
f2();f2();
cout << x << endl;cout << x << endl;
}}
x
void main()void main()
{{
f2();f2();
cout << x << endl;cout << x << endl;
}}
7
36. 3636
45
I. Using Global VariablesI. Using Global Variables
#include <iostream.h>#include <iostream.h>
int x = 0;int x = 0;
void f1() { x++; }void f1() { x++; }
void f2() { x+=4; f1(); }void f2() { x+=4; f1(); }
void main()void main()
{{
f2();f2();
cout << x << endl;cout << x << endl;
}}
x
void main()void main()
{{
f2();f2();
cout << x << endl;cout << x << endl;
}}8
37. 3737
I. Using Global VariablesI. Using Global Variables
#include <iostream.h>#include <iostream.h>
int x = 0;int x = 0;
void f1() { x++; }void f1() { x++; }
void f2() { x+=4; f1(); }void f2() { x+=4; f1(); }
void main()void main()
{{
f2();f2();
cout << x << endl;cout << x << endl;
}}
38. 3838
What Happens When We UseWhat Happens When We Use
Inline Keyword?Inline Keyword?
#include <iostream.h>#include <iostream.h>
int x = 0;int x = 0;
InlineInline void f1() { x++; }void f1() { x++; }
InlineInline void f2() { x+=4; f1();}void f2() { x+=4; f1();}
void main()void main()
{{
f2();f2();
cout << x << endl;cout << x << endl;
}}
39. 3939
What Happens When We UseWhat Happens When We Use
Inline Keyword?Inline Keyword?
#include <iostream.h>#include <iostream.h>
int x = 0;int x = 0;
InlineInline void f1() { x++; }void f1() { x++; }
InlineInline void f2() { x+=4; f1();}void f2() { x+=4; f1();}
void main()void main()
{{
f2();f2();
cout << x << endl;cout << x << endl;
}}
0x
void main()void main()
{{
x+=4;x+=4;
x++;x++;
cout << x << endl;cout << x << endl;
}}
1
The inline keyword
instructs the compiler
to replace the function
call with the function
body!
40. 4040
What Happens When We UseWhat Happens When We Use
Inline Keyword?Inline Keyword?
#include <iostream.h>#include <iostream.h>
int x = 0;int x = 0;
InlineInline void f1() { x++; }void f1() { x++; }
InlineInline void f2() { x+=4; f1();}void f2() { x+=4; f1();}
void main()void main()
{{
f2();f2();
cout << x << endl;cout << x << endl;
}}
4x
void main()void main()
{{
x+=4;x+=4;
x++;x++;
cout << x << endl;cout << x << endl;
}}
2
41. 4141
What Happens When We UseWhat Happens When We Use
Inline Keyword?Inline Keyword?
#include <iostream.h>#include <iostream.h>
int x = 0;int x = 0;
InlineInline void f1() { x++; }void f1() { x++; }
InlineInline void f2() { x+=4; f1();}void f2() { x+=4; f1();}
void main()void main()
{{
f2();f2();
cout << x << endl;cout << x << endl;
}}
5x
void main()void main()
{{
x+=4;x+=4;
x++;x++;
cout << x << endl;cout << x << endl;
}}
3
42. 4242
What Happens When We UseWhat Happens When We Use
Inline Keyword?Inline Keyword?
#include <iostream.h>#include <iostream.h>
int x = 0;int x = 0;
InlineInline void f1() { x++; }void f1() { x++; }
InlineInline void f2() { x+=4; f1();}void f2() { x+=4; f1();}
void main()void main()
{{
f2();f2();
cout << x << endl;cout << x << endl;
}}
5x
void main()void main()
{{
x+=4;x+=4;
x++;x++;
cout << x << endl;cout << x << endl;
}}4
43. 4343
What Happens When We UseWhat Happens When We Use
Inline Keyword?Inline Keyword?
#include <iostream.h>#include <iostream.h>
int x = 0;int x = 0;
InlineInline void f1() { x++; }void f1() { x++; }
InlineInline void f2() { x+=4; f1();}void f2() { x+=4; f1();}
void main()void main()
{{
f2();f2();
cout << x << endl;cout << x << endl;
}}
44. 4444
What is Bad About UsingWhat is Bad About Using
Global Vairables?Global Vairables?
Not safe!Not safe!
If two or more programmers are working together in aIf two or more programmers are working together in a
program, one of them may change the value stored inprogram, one of them may change the value stored in
the global variable without telling the others who maythe global variable without telling the others who may
depend in their calculation on the old stored value!depend in their calculation on the old stored value!
Against The Principle of Information Hiding!Against The Principle of Information Hiding!
Exposing the global variables to all functions isExposing the global variables to all functions is
against the principle of information hiding since thisagainst the principle of information hiding since this
gives all functions the freedom to change the valuesgives all functions the freedom to change the values
stored in the global variables at any time (unsafe!)stored in the global variables at any time (unsafe!)
45. 4545
Local VariablesLocal Variables
Local variables are declared inside the functionLocal variables are declared inside the function
body and exist as long as the function is runningbody and exist as long as the function is running
and destroyed when the function exitand destroyed when the function exit
You have to initialize the local variable beforeYou have to initialize the local variable before
using itusing it
If a function defines a local variable and thereIf a function defines a local variable and there
was a global variable with the same name, thewas a global variable with the same name, the
function uses its local variable instead of usingfunction uses its local variable instead of using
the global variablethe global variable
46. 4646
Example of Defining and UsingExample of Defining and Using
Global and Local VariablesGlobal and Local Variables
#include <iostream.h>#include <iostream.h>
int x;int x; // Global variable// Global variable
Void fun();Void fun(); // function signature// function signature
void main()void main()
{{
x = 4;x = 4;
fun();fun();
cout << x << endl;cout << x << endl;
}}
void fun()void fun()
{{
int x = 10;int x = 10; // Local variable// Local variable
cout << x << endl;cout << x << endl;
}}
47. 4747
Example of Defining and UsingExample of Defining and Using
Global and Local VariablesGlobal and Local Variables
#include <iostream.h>#include <iostream.h>
int x;int x; // Global variable// Global variable
Void fun();Void fun(); // function signature// function signature
void main()void main()
{{
x = 4;x = 4;
fun();fun();
cout << x << endl;cout << x << endl;
}}
void fun()void fun()
{{
int x = 10;int x = 10; // Local variable// Local variable
cout << x << endl;cout << x << endl;
}}
x 0
Global variables are
automatically initialized to 0
48. 4848
Example of Defining and UsingExample of Defining and Using
Global and Local VariablesGlobal and Local Variables
#include <iostream.h>#include <iostream.h>
int x;int x; // Global variable// Global variable
Void fun();Void fun(); // function signature// function signature
void main()void main()
{{
x = 4;x = 4;
fun();fun();
cout << x << endl;cout << x << endl;
}}
void fun()void fun()
{{
int x = 10;int x = 10; // Local variable// Local variable
cout << x << endl;cout << x << endl;
}}
x 0
void main()void main()
{{
x = 4;x = 4;
fun();fun();
cout << x << endl;cout << x << endl;
}}
1
49. 4949
Example of Defining and UsingExample of Defining and Using
Global and Local VariablesGlobal and Local Variables
#include <iostream.h>#include <iostream.h>
int x;int x; // Global variable// Global variable
Void fun();Void fun(); // function signature// function signature
void main()void main()
{{
x = 4;x = 4;
fun();fun();
cout << x << endl;cout << x << endl;
}}
void fun()void fun()
{{
int x = 10;int x = 10; // Local variable// Local variable
cout << x << endl;cout << x << endl;
}}
x 4
void main()void main()
{{
x = 4;x = 4;
fun();fun();
cout << x << endl;cout << x << endl;
}}
2
void fun()void fun()
{{
int x = 10;int x = 10;
cout << x << endl;cout << x << endl;
}}
x ????
3
50. 5050
Example of Defining and UsingExample of Defining and Using
Global and Local VariablesGlobal and Local Variables
#include <iostream.h>#include <iostream.h>
int x;int x; // Global variable// Global variable
Void fun();Void fun(); // function signature// function signature
void main()void main()
{{
x = 4;x = 4;
fun();fun();
cout << x << endl;cout << x << endl;
}}
void fun()void fun()
{{
int x = 10;int x = 10; // Local variable// Local variable
cout << x << endl;cout << x << endl;
}}
x 4
void main()void main()
{{
x = 4;x = 4;
fun();fun();
cout << x << endl;cout << x << endl;
}}
2
void fun()void fun()
{{
int x = 10;int x = 10;
cout << x << endl;cout << x << endl;
}}
x 10
3
51. 5151
Example of Defining and UsingExample of Defining and Using
Global and Local VariablesGlobal and Local Variables
#include <iostream.h>#include <iostream.h>
int x;int x; // Global variable// Global variable
Void fun();Void fun(); // function signature// function signature
void main()void main()
{{
x = 4;x = 4;
fun();fun();
cout << x << endl;cout << x << endl;
}}
void fun()void fun()
{{
int x = 10;int x = 10; // Local variable// Local variable
cout << x << endl;cout << x << endl;
}}
x 4
void main()void main()
{{
x = 4;x = 4;
fun();fun();
cout << x << endl;cout << x << endl;
}}
2
void fun()void fun()
{{
int x = 10;int x = 10;
cout << x << endl;cout << x << endl;
}}
x 10
4
52. 5252
Example of Defining and UsingExample of Defining and Using
Global and Local VariablesGlobal and Local Variables
#include <iostream.h>#include <iostream.h>
int x;int x; // Global variable// Global variable
Void fun();Void fun(); // function signature// function signature
void main()void main()
{{
x = 4;x = 4;
fun();fun();
cout << x << endl;cout << x << endl;
}}
void fun()void fun()
{{
int x = 10;int x = 10; // Local variable// Local variable
cout << x << endl;cout << x << endl;
}}
x 4
void main()void main()
{{
x = 4;x = 4;
fun();fun();
cout << x << endl;cout << x << endl;
}}
2
void fun()void fun()
{{
int x = 10;int x = 10;
cout << x << endl;cout << x << endl;
}}
x 10
5
53. 5353
Example of Defining and UsingExample of Defining and Using
Global and Local VariablesGlobal and Local Variables
#include <iostream.h>#include <iostream.h>
int x;int x; // Global variable// Global variable
Void fun();Void fun(); // function signature// function signature
void main()void main()
{{
x = 4;x = 4;
fun();fun();
cout << x << endl;cout << x << endl;
}}
void fun()void fun()
{{
int x = 10;int x = 10; // Local variable// Local variable
cout << x << endl;cout << x << endl;
}}
x 4
void main()void main()
{{
x = 4;x = 4;
fun();fun();
cout << x << endl;cout << x << endl;
}}
6
54. 5454
Example of Defining and UsingExample of Defining and Using
Global and Local VariablesGlobal and Local Variables
#include <iostream.h>#include <iostream.h>
int x;int x; // Global variable// Global variable
Void fun();Void fun(); // function signature// function signature
void main()void main()
{{
x = 4;x = 4;
fun();fun();
cout << x << endl;cout << x << endl;
}}
void fun()void fun()
{{
int x = 10;int x = 10; // Local variable// Local variable
cout << x << endl;cout << x << endl;
}}
x 4
void main()void main()
{{
x = 4;x = 4;
fun();fun();
cout << x << endl;cout << x << endl;
}}7
55. 5555
II. Using ParametersII. Using Parameters
Function Parameters come in threeFunction Parameters come in three
flavors:flavors:
Value parametersValue parameters – which copy the values of– which copy the values of
the function argumentsthe function arguments
Reference parametersReference parameters – which refer to the– which refer to the
function arguments by other local names andfunction arguments by other local names and
have the ability to change the values of thehave the ability to change the values of the
referenced argumentsreferenced arguments
Constant reference parametersConstant reference parameters – similar to– similar to
the reference parameters but cannot changethe reference parameters but cannot change
the values of the referenced argumentsthe values of the referenced arguments
56. 5656
Value ParametersValue Parameters
This is what we use to declare in the function signature orThis is what we use to declare in the function signature or
function header, e.g.function header, e.g.
int max (int x, int y);int max (int x, int y);
Here, parameters x and y are value parametersHere, parameters x and y are value parameters
When you call the max function asWhen you call the max function as max(4, 7)max(4, 7), the values 4 and 7, the values 4 and 7
are copied to x and y respectivelyare copied to x and y respectively
When you call the max function asWhen you call the max function as max (a, b),max (a, b), where a=40 andwhere a=40 and
b=10, the values 40 and 10 are copied to x and y respectivelyb=10, the values 40 and 10 are copied to x and y respectively
When you call the max function asWhen you call the max function as max( a+b, b/2),max( a+b, b/2), the values 50the values 50
and 5 are copies to x and y respectivelyand 5 are copies to x and y respectively
Once the value parameters accepted copies of theOnce the value parameters accepted copies of the
corresponding arguments data, they act as localcorresponding arguments data, they act as local
variables!variables!
57. 5757
Example of Using ValueExample of Using Value
Parameters and Global VariablesParameters and Global Variables
#include <iostream.h>#include <iostream.h>
int x;int x; // Global variable// Global variable
void fun(int x)void fun(int x)
{{
cout << x << endl;cout << x << endl;
x=x+5;x=x+5;
}}
void main()void main()
{{
x = 4;x = 4;
fun(x/2+1);fun(x/2+1);
cout << x << endl;cout << x << endl;
}}
x 0
void main()void main()
{{
x = 4;x = 4;
fun(x/2+1);fun(x/2+1);
cout << x << endl;cout << x << endl;
}}
1
58. 5858
Example of Using ValueExample of Using Value
Parameters and Global VariablesParameters and Global Variables
#include <iostream.h>#include <iostream.h>
int x;int x; // Global variable// Global variable
void fun(int x)void fun(int x)
{{
cout << x << endl;cout << x << endl;
x=x+5;x=x+5;
}}
void main()void main()
{{
x = 4;x = 4;
fun(x/2+1);fun(x/2+1);
cout << x << endl;cout << x << endl;
}}
x 4
void main()void main()
{{
x = 4;x = 4;
fun(x/2+1);fun(x/2+1);
cout << x << endl;cout << x << endl;
}}
2
void fun(int x )void fun(int x )
{{
cout << x << endl;cout << x << endl;
x=x+5;x=x+5;
}}
3
3
59. 5959
Example of Using ValueExample of Using Value
Parameters and Global VariablesParameters and Global Variables
#include <iostream.h>#include <iostream.h>
int x;int x; // Global variable// Global variable
void fun(int x)void fun(int x)
{{
cout << x << endl;cout << x << endl;
x=x+5;x=x+5;
}}
void main()void main()
{{
x = 4;x = 4;
fun(x/2+1);fun(x/2+1);
cout << x << endl;cout << x << endl;
}}
x 4
void main()void main()
{{
x = 4;x = 4;
fun(x/2+1);fun(x/2+1);
cout << x << endl;cout << x << endl;
}}
2
void fun(int x )void fun(int x )
{{
cout << x << endl;cout << x << endl;
x=x+5;x=x+5;
}}
3
4
8
60. 6060
Example of Using ValueExample of Using Value
Parameters and Global VariablesParameters and Global Variables
#include <iostream.h>#include <iostream.h>
int x;int x; // Global variable// Global variable
void fun(int x)void fun(int x)
{{
cout << x << endl;cout << x << endl;
x=x+5;x=x+5;
}}
void main()void main()
{{
x = 4;x = 4;
fun(x/2+1);fun(x/2+1);
cout << x << endl;cout << x << endl;
}}
x 4
void main()void main()
{{
x = 4;x = 4;
fun(x/2+1);fun(x/2+1);
cout << x << endl;cout << x << endl;
}}
2
void fun(int x )void fun(int x )
{{
cout << x << endl;cout << x << endl;
x=x+5;x=x+5;
}}
38
5
61. 6161
Example of Using ValueExample of Using Value
Parameters and Global VariablesParameters and Global Variables
#include <iostream.h>#include <iostream.h>
int x;int x; // Global variable// Global variable
void fun(int x)void fun(int x)
{{
cout << x << endl;cout << x << endl;
x=x+5;x=x+5;
}}
void main()void main()
{{
x = 4;x = 4;
fun(x/2+1);fun(x/2+1);
cout << x << endl;cout << x << endl;
}}
x 4
void main()void main()
{{
x = 4;x = 4;
fun(x/2+1);fun(x/2+1);
cout << x << endl;cout << x << endl;
}}
6
62. 6262
Example of Using ValueExample of Using Value
Parameters and Global VariablesParameters and Global Variables
#include <iostream.h>#include <iostream.h>
int x;int x; // Global variable// Global variable
void fun(int x)void fun(int x)
{{
cout << x << endl;cout << x << endl;
x=x+5;x=x+5;
}}
void main()void main()
{{
x = 4;x = 4;
fun(x/2+1);fun(x/2+1);
cout << x << endl;cout << x << endl;
}}
x 4
void main()void main()
{{
x = 4;x = 4;
fun(x/2+1);fun(x/2+1);
cout << x << endl;cout << x << endl;
}}7
63. 6363
Reference ParametersReference Parameters
As we saw in the last example, any changes inAs we saw in the last example, any changes in
the value parameters don’t affect the originalthe value parameters don’t affect the original
function argumentsfunction arguments
Sometimes, we want to change the values of theSometimes, we want to change the values of the
original function arguments or return with moreoriginal function arguments or return with more
than one value from the function, in this case wethan one value from the function, in this case we
use reference parametersuse reference parameters
A reference parameter is just another name to theA reference parameter is just another name to the
original argument variableoriginal argument variable
We define a reference parameter by adding the & inWe define a reference parameter by adding the & in
front of the parameter name, e.g.front of the parameter name, e.g.
double update (doubledouble update (double && x);x);
64. 6464
Example of Reference ParametersExample of Reference Parameters
#include <iostream.h>#include <iostream.h>
void fun(int &y)void fun(int &y)
{{
cout << y << endl;cout << y << endl;
y=y+5;y=y+5;
}}
void main()void main()
{{
int x = 4;int x = 4; // Local variable// Local variable
fun(x);fun(x);
cout << x << endl;cout << x << endl;
}}
void main()void main()
{{
int x = 4;int x = 4;
fun(x);fun(x);
cout << x << endl;cout << x << endl;
}}
1 x? x4
65. 6565
Example of Reference ParametersExample of Reference Parameters
#include <iostream.h>#include <iostream.h>
void fun(int &y)void fun(int &y)
{{
cout << y << endl;cout << y << endl;
y=y+5;y=y+5;
}}
void main()void main()
{{
int x = 4; // Local variableint x = 4; // Local variable
fun(x);fun(x);
cout << x << endl;cout << x << endl;
}}
void main()void main()
{{
int x = 4;int x = 4;
fun(x);fun(x);
cout << x << endl;cout << x << endl;
}}
2
x? x4
void fun( int & y )void fun( int & y )
{{
cout<<y<<endl;cout<<y<<endl;
y=y+5;y=y+5;
}}
3
66. 6666
Example of Reference ParametersExample of Reference Parameters
#include <iostream.h>#include <iostream.h>
void fun(int &y)void fun(int &y)
{{
cout << y << endl;cout << y << endl;
y=y+5;y=y+5;
}}
void main()void main()
{{
int x = 4; // Local variableint x = 4; // Local variable
fun(x);fun(x);
cout << x << endl;cout << x << endl;
}}
void main()void main()
{{
int x = 4;int x = 4;
fun(x);fun(x);
cout << x << endl;cout << x << endl;
}}
2
x? x4
void fun( int & y )void fun( int & y )
{{
cout<<y<<endl;cout<<y<<endl;
y=y+5;y=y+5;
}}
4 9
67. 6767
Example of Reference ParametersExample of Reference Parameters
#include <iostream.h>#include <iostream.h>
void fun(int &y)void fun(int &y)
{{
cout << y << endl;cout << y << endl;
y=y+5;y=y+5;
}}
void main()void main()
{{
int x = 4; // Local variableint x = 4; // Local variable
fun(x);fun(x);
cout << x << endl;cout << x << endl;
}}
void main()void main()
{{
int x = 4;int x = 4;
fun(x);fun(x);
cout << x << endl;cout << x << endl;
}}
2
x? x9
void fun( int & y )void fun( int & y )
{{
cout<<y<<endl;cout<<y<<endl;
y=y+5;y=y+5;
}}5
68. 6868
Example of Reference ParametersExample of Reference Parameters
#include <iostream.h>#include <iostream.h>
void fun(int &y)void fun(int &y)
{{
cout << y << endl;cout << y << endl;
y=y+5;y=y+5;
}}
void main()void main()
{{
int x = 4; // Local variableint x = 4; // Local variable
fun(x);fun(x);
cout << x << endl;cout << x << endl;
}}
void main()void main()
{{
int x = 4;int x = 4;
fun(x);fun(x);
cout << x << endl;cout << x << endl;
}}
6
x? x9
69. 6969
Example of Reference ParametersExample of Reference Parameters
#include <iostream.h>#include <iostream.h>
void fun(int &y)void fun(int &y)
{{
cout << y << endl;cout << y << endl;
y=y+5;y=y+5;
}}
void main()void main()
{{
int x = 4; // Local variableint x = 4; // Local variable
fun(x);fun(x);
cout << x << endl;cout << x << endl;
}}
void main()void main()
{{
int x = 4;int x = 4;
fun(x);fun(x);
cout << x << endl;cout << x << endl;
}}
x? x9
7
70. 7070
Constant Reference ParametersConstant Reference Parameters
Constant reference parameters are used underConstant reference parameters are used under
the following two conditions:the following two conditions:
The passed data are so big and you want to saveThe passed data are so big and you want to save
time and computer memorytime and computer memory
The passed data will not be changed or updated inThe passed data will not be changed or updated in
the function bodythe function body
For exampleFor example
void report (void report (constconst stringstring && prompt);prompt);
The only valid arguments accepted by referenceThe only valid arguments accepted by reference
parameters and constant reference parametersparameters and constant reference parameters
are variable namesare variable names
It is a syntax error to pass constant values orIt is a syntax error to pass constant values or
expressions to the (const) reference parametersexpressions to the (const) reference parameters