SlideShare une entreprise Scribd logo
1  sur  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
         };
    }

Contenu connexe

Tendances

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)RichardWarburton
 
Lec 42.43 - virtual.functions
Lec 42.43 - virtual.functionsLec 42.43 - virtual.functions
Lec 42.43 - virtual.functionsPrincess Sam
 
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#Juan Pablo
 
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 beyondMario Fusco
 
classes & objects in cpp overview
classes & objects in cpp overviewclasses & objects in cpp overview
classes & objects in cpp overviewgourav kottawar
 
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 operatorJussi Pohjolainen
 
Introduction to Functional Programming in JavaScript
Introduction to Functional Programming in JavaScriptIntroduction to Functional Programming in JavaScript
Introduction to Functional Programming in JavaScripttmont
 
JAVA Variables and Operators
JAVA Variables and OperatorsJAVA Variables and Operators
JAVA Variables and OperatorsSunil OS
 
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)Gandhi Ravi
 
Tutconstructordes
TutconstructordesTutconstructordes
TutconstructordesNiti Arora
 
Introduction to julia
Introduction to juliaIntroduction to julia
Introduction to julia岳華 杜
 
Java Simple Programs
Java Simple ProgramsJava Simple Programs
Java Simple ProgramsUpender Upr
 

Tendances (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
 

Similaire à More on Classes and Objects

class and objects
class and objectsclass and objects
class and objectsPayel Guria
 
Presentation on template and exception
Presentation  on template and exceptionPresentation  on template and exception
Presentation on template and exceptionSajid Alee Mosavi
 
Inheritance in C++.ppt
Inheritance in C++.pptInheritance in C++.ppt
Inheritance in C++.pptinstaface
 
Constructor in c++
Constructor in c++Constructor in c++
Constructor in c++Jay Patel
 
Kotlin Developer Starter in Android projects
Kotlin Developer Starter in Android projectsKotlin Developer Starter in Android projects
Kotlin Developer Starter in Android projectsBartosz Kosarzycki
 
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, 2016STX Next
 
OBJECTS IN Object Oriented Programming .ppt
OBJECTS IN Object Oriented Programming .pptOBJECTS IN Object Oriented Programming .ppt
OBJECTS IN Object Oriented Programming .pptSaadAsim11
 
C++ prgms 4th unit Inheritance
C++ prgms 4th unit InheritanceC++ prgms 4th unit Inheritance
C++ prgms 4th unit InheritanceAnanda Kumar HN
 
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_jaiswarROHIT JAISWAR
 
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)Abu Saleh
 

Similaire à 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
 

Dernier

Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Principled Technologies
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024SynarionITSolutions
 
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...DianaGray10
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
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 WorkerThousandEyes
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesBoston Institute of Analytics
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
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...Drew Madelung
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
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 TerraformAndrey Devyatkin
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 

Dernier (20)

Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
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...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
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
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
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...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
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
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 

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 }; }