SlideShare una empresa de Scribd logo
1 de 29
MORE ON CLASSES
AND OBJECTS
Chapter 4
Data Members
Types of data member :

   Constant data members.
   Mutable data members.
   Static data members.
Member Functions
Different types of member functions:
 Nested Member functions.

 Overloaded member functions.

 Constant member function.

 Member functions with default arguments.

 Inline member functions.

 Static member functions.
Constant data members
 The data members whose value cannot be
  changed throughout the execution of the
  program.
 They are declared by preceding the qualifier
  const.
Example:
const int x = 10;
Example:
#include<iostream>
void main()
{
const int x = 10;
x++;      // error
cout<< x<<endl;
}
Mutable data members
   If the need arises such that the constant
    member functions has to modify the value of
    the data members then the data member has
    to be declared by prefixing the keyword
    „mutable‟.
Example:
#include<iostream>
class x
{
    int a ;
    mutable int b;
public:
    void xyz() const
{
a++;                   // error
b++;                              // legal
}
};
void main()
{
X x2;
X2.xyz();
}
Constant member function
#include<iostream.h>
                       void main()
class x
                       {
{                      x x1;
                       x1.getdata(56);
int a;
                       Cout<< x1.setdata()<<endl;
public:                }
void getdata(int x)
{
a=x;
}
int setdata() const
{
a++; // error
return a;
}
};
Static data member
   Those members whose members are
    accessed by all the objects of a class.
   It is not own by any object of a class.
   Only one copy of a static data member is
    created for a class which can be accessed by
    all the objects of that class.
Example:
#include<iostream.h>
class x                void main()
                       {
{                      x x1,x2;
static int a;          x1.display();
                       x2.display();
int b;                 x1.getdata(1);
                       x2.getdata(2);
public:                x1.display();
                       x2.display();
void getdata(int x)    }
{
                       Output:
                       0
b=x;                   0
a++;                   2
                       2
}
void display(void)
{
cout<< a<< endl;
}
};
int x :: a;
Static member function
#include<iostream.h>
                             void main()
class sample
                             {
{                            sample s1,s2;
                             Sample :: getdata(1)//invoking static member function
static int a;
                             s1.display();
                             s2.getdata(2);// invoking static member function using object
                             s2.display();
public:                      }
                             Output:
                             1
Static void getdata(int x)
                             2

{

a=x;
}
void display(void)
{
cout<< a<< endl;
}
};
Int sample :: a;
Nested member function
#include<iostream>
                                     void main()
class sample                         {
{                                    sample e;
                                     t =e.get_data (34);
       int x;                        cout<< t << endl;
public:                               }
                                     Output:
       void get_data(int);           Nested member function
       void message(char *);         34
};
int sample :: get_data(int a)
{
x=a;
message(“Nested member function”);
return x;
}
void sample :: message(char *s)
{
cout<< s<< endl;
}
Overloaded member function
                           With single class:
Class A
{                                               Void main()
Public:                                         {
                                                A a1;
void display(void);                             a1.display(void);
void display(int);                              a1.display(20);
                                                }
};                                              Output:
void a :: display(void)                         Hello
{                                               20

cout<< “Hello”<< endl;
}
void a :: display(int d)
{
cout<<d<< endl;
}
Overloaded member function
      Two different classes.
Class A                        Void main()
{                              {
                               A a1;
Public:
                               B b1;
void display(void);            a1.display(void);
};                             b1.display(void);
Class B                        }
                               Output:
{                              Hello
Public:                        World
void display(void);
};


void A :: display(void)
{
cout<< “Hello”<< endl;
}
void B :: display(void)
{
cout<<“World”<< endl;
}
Member functions with default
arguments
#include<iostream>
class addition
{
Public:
     void add(int, int = 2);
};
void addition :: add(int a, int b)
{
return(a+b);
}
Void main()
{
addition a;
a.add(5,6);
a.add(6);
}
Output
11
8
Inline function
Class test
{
                                                  void main()
private :
                                                  {
               int a;                             test t;
               int b;                             int a,b;
public:                                           cout<<“enter the two numbers” <<
                                                  endl;
               void set_data(int , int )
                                                  cin>> a >> b;
              int big()                      //   t.set_data(a,b);
automatic inline function                         cout<<“the largest number is ” <<
               {                                  t.big() << endl;
               if (a > b)                         }
                              return a;
               else
                              return b;
               }
};
inline void test :: set_data(int x, int y)
               {
                              a=x;
                              b=y;
               }
Friend function
  To provide non-member function to access
   private data member of a class, c++ allow the
   non-member to be made friend of that class.
 Syntax:

friend<data_type> <func_name>();
Example
Friend non-member function:

Class sample
{
Int a;
Public:
Friend void change(sample &);
};
Void change(sample &x)
{
x.a= 5;
}
Void main()
{
Sample A;
Change(A);
}
Example
    Friend member function:
                                               Void test :: set_data(sample &a, int b)
Class sample; // forward declaration.          {
Class test                                     a.x= b;
                                               }
{                                              Int sample :: get_data(void)
Public:                                        {
                                               Return x;
Void set_data(sample &, int);                  }
};                                             Void main()
                                               {
Class sample                                   Sample e;
{                                              Test f;
                                               f.set_data(5);
Private:                                       Cout<< e.get_data()<< endl;
Int x;                                         }
Public:
Int get_data(void);
Friend void test :: set_data(sample &, int);
};
Friend class
  A class is made friend of another class. For
   example,
   If a class X is a friend of class Y then all the
   member function of class X can access the
   private data member of class Y.
Declaration:
friend class X;
Example of friend class
# include<iostream>
Class Y;                            void Y :: change_data(X &c, int p, int
                                    q)
Class X                             {
{                                   c.X = p;
                                    c.Y = q;
Int x,y;
                                    }
Public:                             void X :: show_data()
Void show_data();                   {
                                    Cout<< x << y << endl;
friend class Y;                     }
};                                  Int main()
                                    {
Class Y                             X x1;
{                                   Y y1;
                                    Y1.change_data(x1,5,6);
Public:
                                    x1.show_data();
void change_data( X &, int, int);   return 0;
};                                  }
Array of class objects
  Array of class objects is similar to the array of
   structures.
 Syntax:

Class <class_name>
{
// class body
};
<class_name><object_name[size]>;
Example:
Class Employee
{
Char name[20];
Float salary;
Public:
Void getdata();
Void display();
};
Employee e[5];
Passing object to functions
   By value
   By reference
   By pointer
By value
Here only the copy of the object is passed to the
 function definition.
The modification on objects made in the called
 function will not be reflected in the calling
 function.
By reference
Here when the object is passed to the function
 definition, the formal argument shares the
 memory location of the actual arguments.
Hence the modification on objects made in the
 called function will be reflected in the calling
 function.
By pointer
Here pointer to the object is passed. The
 member of the objects passed are accessed
 by the arrow operator(->).
The modification on objects made in the called
 function will be reflected in the calling function.
Example
#include<iostream>                         void set(A *z,int t)
                                           {
class A                                    z->a = t;
{                                          }
int a;                                     int main()
public:                                    {
                                           A a1;
void set(A, int); // call by value         a1.a = 10;
void set(int, A &); // call by reference   cout<<a;
                                           a1.set(a1,5);// by value
void set(A *, int); // call by pointer
                                           cout<<a;
};                                         a1.set(20,a1);// by reference
                                           cout<<a;
void set(A x,int p)
                                           a1.set(&a1,30);// by pointer
{                                          cout<<a;
                                           }
x.a = p;
}                                          Output:
                                           10
void set(int q, A &y)
                                           10
{                                          20
                                           30
y.a = q;
}
Nested class
   Class within a class
   Example:
    class A
    {
    // class body
         class B
         {
         // inner class body
         };
    }

Más contenido relacionado

La actualidad más candente

Lec 42.43 - virtual.functions
Lec 42.43 - virtual.functionsLec 42.43 - virtual.functions
Lec 42.43 - virtual.functions
Princess Sam
 
FP in Java - Project Lambda and beyond
FP in Java - Project Lambda and beyondFP in Java - Project Lambda and beyond
FP in Java - Project Lambda and beyond
Mario Fusco
 
C++: Constructor, Copy Constructor and Assignment operator
C++: Constructor, Copy Constructor and Assignment operatorC++: Constructor, Copy Constructor and Assignment operator
C++: Constructor, Copy Constructor and Assignment operator
Jussi Pohjolainen
 
Tutconstructordes
TutconstructordesTutconstructordes
Tutconstructordes
Niti Arora
 

La actualidad más candente (20)

Pragmatic functional refactoring with java 8 (1)
Pragmatic functional refactoring with java 8 (1)Pragmatic functional refactoring with java 8 (1)
Pragmatic functional refactoring with java 8 (1)
 
Lec 42.43 - virtual.functions
Lec 42.43 - virtual.functionsLec 42.43 - virtual.functions
Lec 42.43 - virtual.functions
 
Introduction to Julia Language
Introduction to Julia LanguageIntroduction to Julia Language
Introduction to Julia Language
 
OOP Core Concept
OOP Core ConceptOOP Core Concept
OOP Core Concept
 
Lo Mejor Del Pdc2008 El Futrode C#
Lo Mejor Del Pdc2008 El Futrode C#Lo Mejor Del Pdc2008 El Futrode C#
Lo Mejor Del Pdc2008 El Futrode C#
 
OOP v3
OOP v3OOP v3
OOP v3
 
FP in Java - Project Lambda and beyond
FP in Java - Project Lambda and beyondFP in Java - Project Lambda and beyond
FP in Java - Project Lambda and beyond
 
Op ps
Op psOp ps
Op ps
 
Constructor
ConstructorConstructor
Constructor
 
classes & objects in cpp overview
classes & objects in cpp overviewclasses & objects in cpp overview
classes & objects in cpp overview
 
Constructors & destructors
Constructors & destructorsConstructors & destructors
Constructors & destructors
 
C++: Constructor, Copy Constructor and Assignment operator
C++: Constructor, Copy Constructor and Assignment operatorC++: Constructor, Copy Constructor and Assignment operator
C++: Constructor, Copy Constructor and Assignment operator
 
Class method
Class methodClass method
Class method
 
Introduction to Functional Programming in JavaScript
Introduction to Functional Programming in JavaScriptIntroduction to Functional Programming in JavaScript
Introduction to Functional Programming in JavaScript
 
JAVA Variables and Operators
JAVA Variables and OperatorsJAVA Variables and Operators
JAVA Variables and Operators
 
Java ppt Gandhi Ravi (gandhiri@gmail.com)
Java ppt  Gandhi Ravi  (gandhiri@gmail.com)Java ppt  Gandhi Ravi  (gandhiri@gmail.com)
Java ppt Gandhi Ravi (gandhiri@gmail.com)
 
Tutconstructordes
TutconstructordesTutconstructordes
Tutconstructordes
 
Introduction to julia
Introduction to juliaIntroduction to julia
Introduction to julia
 
Java Simple Programs
Java Simple ProgramsJava Simple Programs
Java Simple Programs
 
C# Generics
C# GenericsC# Generics
C# Generics
 

Similar a More on Classes and Objects

class and objects
class and objectsclass and objects
class and objects
Payel Guria
 

Similar a More on Classes and Objects (20)

class and objects
class and objectsclass and objects
class and objects
 
C++ prgms 3rd unit
C++ prgms 3rd unitC++ prgms 3rd unit
C++ prgms 3rd unit
 
Constructor and destructor
Constructor and destructorConstructor and destructor
Constructor and destructor
 
C++ programs
C++ programsC++ programs
C++ programs
 
Presentation on template and exception
Presentation  on template and exceptionPresentation  on template and exception
Presentation on template and exception
 
Pre zen ta sion
Pre zen ta sionPre zen ta sion
Pre zen ta sion
 
Inheritance in C++.ppt
Inheritance in C++.pptInheritance in C++.ppt
Inheritance in C++.ppt
 
Constructor in c++
Constructor in c++Constructor in c++
Constructor in c++
 
Kotlin Developer Starter in Android projects
Kotlin Developer Starter in Android projectsKotlin Developer Starter in Android projects
Kotlin Developer Starter in Android projects
 
Kotlin Developer Starter in Android - STX Next Lightning Talks - Feb 12, 2016
Kotlin Developer Starter in Android - STX Next Lightning Talks - Feb 12, 2016Kotlin Developer Starter in Android - STX Next Lightning Talks - Feb 12, 2016
Kotlin Developer Starter in Android - STX Next Lightning Talks - Feb 12, 2016
 
C++11
C++11C++11
C++11
 
OBJECTS IN Object Oriented Programming .ppt
OBJECTS IN Object Oriented Programming .pptOBJECTS IN Object Oriented Programming .ppt
OBJECTS IN Object Oriented Programming .ppt
 
Oop objects_classes
Oop objects_classesOop objects_classes
Oop objects_classes
 
C++ prgms 4th unit Inheritance
C++ prgms 4th unit InheritanceC++ prgms 4th unit Inheritance
C++ prgms 4th unit Inheritance
 
Test Engine
Test EngineTest Engine
Test Engine
 
Java programming lab_manual_by_rohit_jaiswar
Java programming lab_manual_by_rohit_jaiswarJava programming lab_manual_by_rohit_jaiswar
Java programming lab_manual_by_rohit_jaiswar
 
Lecture05
Lecture05Lecture05
Lecture05
 
662305 10
662305 10662305 10
662305 10
 
Lecture 4.2 c++(comlete reference book)
Lecture 4.2 c++(comlete reference book)Lecture 4.2 c++(comlete reference book)
Lecture 4.2 c++(comlete reference book)
 
C++.pptx
C++.pptxC++.pptx
C++.pptx
 

Último

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Último (20)

Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 

More on Classes and Objects

  • 1. MORE ON CLASSES AND OBJECTS Chapter 4
  • 2. Data Members Types of data member :  Constant data members.  Mutable data members.  Static data members.
  • 3. Member Functions Different types of member functions:  Nested Member functions.  Overloaded member functions.  Constant member function.  Member functions with default arguments.  Inline member functions.  Static member functions.
  • 4. Constant data members  The data members whose value cannot be changed throughout the execution of the program.  They are declared by preceding the qualifier const. Example: const int x = 10;
  • 5. Example: #include<iostream> void main() { const int x = 10; x++; // error cout<< x<<endl; }
  • 6. Mutable data members  If the need arises such that the constant member functions has to modify the value of the data members then the data member has to be declared by prefixing the keyword „mutable‟.
  • 7. Example: #include<iostream> class x { int a ; mutable int b; public: void xyz() const { a++; // error b++; // legal } }; void main() { X x2; X2.xyz(); }
  • 8. Constant member function #include<iostream.h> void main() class x { { x x1; x1.getdata(56); int a; Cout<< x1.setdata()<<endl; public: } void getdata(int x) { a=x; } int setdata() const { a++; // error return a; } };
  • 9. Static data member  Those members whose members are accessed by all the objects of a class.  It is not own by any object of a class.  Only one copy of a static data member is created for a class which can be accessed by all the objects of that class.
  • 10. Example: #include<iostream.h> class x void main() { { x x1,x2; static int a; x1.display(); x2.display(); int b; x1.getdata(1); x2.getdata(2); public: x1.display(); x2.display(); void getdata(int x) } { Output: 0 b=x; 0 a++; 2 2 } void display(void) { cout<< a<< endl; } }; int x :: a;
  • 11. Static member function #include<iostream.h> void main() class sample { { sample s1,s2; Sample :: getdata(1)//invoking static member function static int a; s1.display(); s2.getdata(2);// invoking static member function using object s2.display(); public: } Output: 1 Static void getdata(int x) 2 { a=x; } void display(void) { cout<< a<< endl; } }; Int sample :: a;
  • 12. Nested member function #include<iostream> void main() class sample { { sample e; t =e.get_data (34); int x; cout<< t << endl; public: } Output: void get_data(int); Nested member function void message(char *); 34 }; int sample :: get_data(int a) { x=a; message(“Nested member function”); return x; } void sample :: message(char *s) { cout<< s<< endl; }
  • 13. Overloaded member function With single class: Class A { Void main() Public: { A a1; void display(void); a1.display(void); void display(int); a1.display(20); } }; Output: void a :: display(void) Hello { 20 cout<< “Hello”<< endl; } void a :: display(int d) { cout<<d<< endl; }
  • 14. Overloaded member function Two different classes. Class A Void main() { { A a1; Public: B b1; void display(void); a1.display(void); }; b1.display(void); Class B } Output: { Hello Public: World void display(void); }; void A :: display(void) { cout<< “Hello”<< endl; } void B :: display(void) { cout<<“World”<< endl; }
  • 15. Member functions with default arguments #include<iostream> class addition { Public: void add(int, int = 2); }; void addition :: add(int a, int b) { return(a+b); } Void main() { addition a; a.add(5,6); a.add(6); } Output 11 8
  • 16. Inline function Class test { void main() private : { int a; test t; int b; int a,b; public: cout<<“enter the two numbers” << endl; void set_data(int , int ) cin>> a >> b; int big() // t.set_data(a,b); automatic inline function cout<<“the largest number is ” << { t.big() << endl; if (a > b) } return a; else return b; } }; inline void test :: set_data(int x, int y) { a=x; b=y; }
  • 17. Friend function  To provide non-member function to access private data member of a class, c++ allow the non-member to be made friend of that class.  Syntax: friend<data_type> <func_name>();
  • 18. Example Friend non-member function: Class sample { Int a; Public: Friend void change(sample &); }; Void change(sample &x) { x.a= 5; } Void main() { Sample A; Change(A); }
  • 19. Example  Friend member function: Void test :: set_data(sample &a, int b) Class sample; // forward declaration. { Class test a.x= b; } { Int sample :: get_data(void) Public: { Return x; Void set_data(sample &, int); } }; Void main() { Class sample Sample e; { Test f; f.set_data(5); Private: Cout<< e.get_data()<< endl; Int x; } Public: Int get_data(void); Friend void test :: set_data(sample &, int); };
  • 20. Friend class  A class is made friend of another class. For example, If a class X is a friend of class Y then all the member function of class X can access the private data member of class Y. Declaration: friend class X;
  • 21. Example of friend class # include<iostream> Class Y; void Y :: change_data(X &c, int p, int q) Class X { { c.X = p; c.Y = q; Int x,y; } Public: void X :: show_data() Void show_data(); { Cout<< x << y << endl; friend class Y; } }; Int main() { Class Y X x1; { Y y1; Y1.change_data(x1,5,6); Public: x1.show_data(); void change_data( X &, int, int); return 0; }; }
  • 22. Array of class objects  Array of class objects is similar to the array of structures.  Syntax: Class <class_name> { // class body }; <class_name><object_name[size]>;
  • 23. Example: Class Employee { Char name[20]; Float salary; Public: Void getdata(); Void display(); }; Employee e[5];
  • 24. Passing object to functions  By value  By reference  By pointer
  • 25. By value Here only the copy of the object is passed to the function definition. The modification on objects made in the called function will not be reflected in the calling function.
  • 26. By reference Here when the object is passed to the function definition, the formal argument shares the memory location of the actual arguments. Hence the modification on objects made in the called function will be reflected in the calling function.
  • 27. By pointer Here pointer to the object is passed. The member of the objects passed are accessed by the arrow operator(->). The modification on objects made in the called function will be reflected in the calling function.
  • 28. Example #include<iostream> void set(A *z,int t) { class A z->a = t; { } int a; int main() public: { A a1; void set(A, int); // call by value a1.a = 10; void set(int, A &); // call by reference cout<<a; a1.set(a1,5);// by value void set(A *, int); // call by pointer cout<<a; }; a1.set(20,a1);// by reference cout<<a; void set(A x,int p) a1.set(&a1,30);// by pointer { cout<<a; } x.a = p; } Output: 10 void set(int q, A &y) 10 { 20 30 y.a = q; }
  • 29. Nested class  Class within a class  Example: class A { // class body class B { // inner class body }; }