SlideShare a Scribd company logo
2
Most read
3
Most read
10
Most read
Static Data Member
• A type of data member that is shared among all objects of class is
known as static data member.
• The static data member is defined in the class with static keyword.
• When a data member is defined as static, only one variable is created
in the memory even if there are many objects of that class.
• A static data item is useful when all objects of the same class must
share a common item of information.
• The characteristics of a static data member are same as normal static
variable.
Static Data Member
• It is visible only in the class, in which it is defined but its lifetime
• Starts when the program starts its execution.
• Ends when the entire program is terminated.
• It is normally used to share some data among all objects of a particular
class.
• The main difference between normal data member and static data
member is that
• each object has its own variable of normal data member.
• On the other hand, static data member is shared among all objects of the class.
• Only one memory location is created for static data member that is shared
among all objects.
Difference Between Normal & Static Data
Members
Object with three normal data
members
Object with two normal data members
and one static data member
200
n
1
a
10
b
Object b1
2
a
20
b
Object b2
1
a
10
b
100
n
Object b1
2
a
20
b
200
n
Object b2
Uses of Static Class Data
• Why would you want to use static member data?
• As an example, suppose an object needed to know how many other
objects of its class were in the program.
• for example :
• In a road-racing game, a race car might want to know how many other cars
are still in the race.
• In this case a static variable count could be included as a member of
the class. All the objects would have access to this variable.
• It would be the same variable for all of them; they would all see the
same count.
Separate Declaration and Definition
• Static member data requires an unusual format.
• Ordinary variables are usually declared and defined in the same
statement.
• Static member data, on the other hand, requires two separate
statements.
• The variable’s declaration appears in the class definition, but the
• Variable is defined outside the class, in much the same way as a global
variable.
• Why is this two-part approach used?
• If static member data were defined inside the class, it would violate the idea
that a class definition is only a blueprint and does not set aside any memory.
Separate Declaration and Definition
• Putting the definition of static member data outside the class also
serves to emphasize that
• the memory space for such data is allocated only once, before the program
starts to execute, and that
• one static member variable is accessed by an entire class; each object does
not have its own version of the variable, as it would with ordinary member
data.
• In this way a static member variable is more like a global variable.
Write a program that counts the number of
objects created of a particular class (1/2)
class yahoo
{
private:
static int n;
public:
yahoo()
{ n++; }
void show()
{
cout<<“you have created ”<<n<<“ objects so far ”<<endl;
}
};
Write a program that counts the number of
objects created of a particular class (2/2)
int yahoo::n=0;
void main()
{
yahoo x,y;
x.show();
yahoo z;
x.show();
}
OUTPUT:
• You have created 2 objects so far.
• You have created 3 objects so far.
How it Works
• The program declares a static data member n to count the number of objects
that have been created.
• The statement int yahoo::n=0;defines the variable and initializes it to 0.
• The variable is defined outside the class because it will be not part of any object.
• It is created only once in the memory and is shared among all objects of the class.
• The variable definition outside the class must be preceded with class name and
scope resolution operator ::.
• The compiler does not display any error if the static data member is not defined.
• The linker will generate an error when the program is executed.
• The above program creates three objects x, y and z. each time an object is
created, the constructor is executed that increases the value of n by 1.
Write a program that creates three objects of class
student. Each of them must assigned a unique roll
number. (Hint: use static data member for unique roll number) (1/2)
class Student
{
private:
static int r;
int rno,marks;
char name[30];
public:
Student()
{ r++;
Rno =r; }
void in()
{
cout<<“enter name:”;
gets(name);
cout<<“enter marks:”;
cin>>marks;
}
void show()
{
cout<<“Roll No:”<<rno<<endl;
cout<<“Name:”<<name<<endl;
cout<<“Marks:”<<marks<<endl;
}
};
Write a program that creates three objects of class
student. Each of them must assigned a unique roll
number. (Hint: use static data member for unique roll number) (2/2)
int Student::r=0;
void main()
{
Student s1,s2,s3;
s1.in();
s2.in();
s3.in();
s1.show();
s2.show();
s3.show();
}
How it Works
• The above program uses a static data member r to assign unique roll
numbers to each object of the class Student.
• The static data member is initialized to 0.
• The constructor increments its value by 1 when an object is created
and then assigns the updated value of r to the data member rno.
• It ensures that each object gets a unique roll number.
Static member function:
• A member function that is declared static has the following properties:
 A static function can have access to only other static members(function or variable)
declared in the same class.
 A static member function can be called using the class name.
like, class_name :: Function_name();
test :: getdata();
• Static Member Function in C++
• Static Member Function in a class is the function that is declared as static because
of which function attains certain properties as defined below:
• A static member function is independent of any object of the class.
• A static member function can be called even if no objects of the class exist.
• A static member function can also be accessed using the class name through the
scope resolution operator.
• A static member function can access static data members and static member
functions inside or outside of the class.
• Static member functions have a scope inside the class and cannot access the
current object pointer.
• You can also use a static member function to determine how many objects of the
class have been created.
• Static members are frequently used to store information that is
shared by all objects in a class.
• For instance, you may keep track of the quantity of newly generated
objects of a specific class type using a static data member as a
counter. This static data member can be increased each time an
object is generated to keep track of the overall number of objects.
• // C++ Program to show the working of
• // static member functions
• #include <iostream>
• using namespace std;
• class Box
• {
• private:
• static int length;
• static int breadth;
• static int height;
•
• public:
•
• static void print()
• {
• cout << "The value of the length is: " << length << endl;
• cout << "The value of the breadth is: " << breadth << endl;
• cout << "The value of the height is: " << height << endl;
• }
• };
• // initialize the static data members
• int Box :: length = 10;
• int Box :: breadth = 20;
• int Box :: height = 30;
• // Driver Code
• int main()
• {
•
• Box b;
•
• cout << "Static member function is called through Object name: n" << endl;
• b.print();
•
• cout << "nStatic member function is called through Class name: n" << endl;
• Box::print();
•
• return 0;
• }

More Related Content

PPTX
Array Of Pointers
PPTX
Functions in c
PDF
C notes.pdf
PPT
Function overloading(c++)
PPTX
Friend function
PDF
Function in C
PPTX
Dynamic memory allocation
PPTX
Data Types In C
Array Of Pointers
Functions in c
C notes.pdf
Function overloading(c++)
Friend function
Function in C
Dynamic memory allocation
Data Types In C

What's hot (20)

PDF
STRUCTURE AND UNION IN C MRS.SOWMYA JYOTHI.pdf
PPTX
Types of function call
PPT
Java: Java Applets
PPT
friend function(c++)
PPTX
Templates in c++
PPT
C++ - Constructors,Destructors, Operator overloading and Type conversion
PPTX
Constructor overloading in C++
PPTX
Data types in C
PPTX
File in C language
PPTX
classes and objects in C++
PPTX
Pointers in c language
PPT
Inheritance
PDF
Unit ii chapter 1 operator and expressions in c
PPTX
Static Data Members and Member Functions
PPTX
L21 io streams
PPTX
Polymorphism
PPTX
Static Members-Java.pptx
PPT
Friends function and_classes
PPTX
Templates in C++
STRUCTURE AND UNION IN C MRS.SOWMYA JYOTHI.pdf
Types of function call
Java: Java Applets
friend function(c++)
Templates in c++
C++ - Constructors,Destructors, Operator overloading and Type conversion
Constructor overloading in C++
Data types in C
File in C language
classes and objects in C++
Pointers in c language
Inheritance
Unit ii chapter 1 operator and expressions in c
Static Data Members and Member Functions
L21 io streams
Polymorphism
Static Members-Java.pptx
Friends function and_classes
Templates in C++
Ad

Similar to static members in object oriented program.pptx (20)

PDF
lecture-18staticdatamember-160705095116.pdf
PPTX
[OOP - Lec 18] Static Data Member
PPTX
Oop lect3.pptx
PDF
Chapter22 static-class-member-example
PPT
Unit vi(dsc++)
PPTX
[OOP - Lec 19] Static Member Functions
PPTX
Class and object
PDF
Static Keyword Static is a keyword in C++ used to give special chara.pdf
PPT
classes & objects.ppt
PPTX
OOPs & C++ UNIT 3
PPT
classandobjectunit2-150824133722-lva1-app6891.ppt
PPTX
18.Static Data Members and Static member function.pptx
PPT
C++ Returning Objects
PDF
Introduction to C++ Class & Objects. Book Notes
PPTX
class c++
PPTX
static data member and member function .pptx
PPTX
Classes and objects
PPTX
classes & objects in cpp
PPTX
Operator overload rr
PPTX
classes & objects in cpp overview
lecture-18staticdatamember-160705095116.pdf
[OOP - Lec 18] Static Data Member
Oop lect3.pptx
Chapter22 static-class-member-example
Unit vi(dsc++)
[OOP - Lec 19] Static Member Functions
Class and object
Static Keyword Static is a keyword in C++ used to give special chara.pdf
classes & objects.ppt
OOPs & C++ UNIT 3
classandobjectunit2-150824133722-lva1-app6891.ppt
18.Static Data Members and Static member function.pptx
C++ Returning Objects
Introduction to C++ Class & Objects. Book Notes
class c++
static data member and member function .pptx
Classes and objects
classes & objects in cpp
Operator overload rr
classes & objects in cpp overview
Ad

More from urvashipundir04 (20)

PPTX
introduction to python in detail including .pptx
PPTX
kewords in python using 35 keywords.pptx
PPTX
stack in python using different datatypes.pptx
PPTX
Game Playing in Artificial intelligence.pptx
PPTX
extended modelling in dbms using different.pptx
PPTX
PRODUCTION SYSTEM in data science .pptx
PPTX
Presentation1 in datamining using techn.pptx
PPTX
Dependency modelling in data mining.pptx
PPTX
INTRODUCTION to datawarehouse IN DATA.pptx
PPTX
SOCIAL NETWORK ANALYISI in engeenireg.pptx
PPTX
datamining in engerring using different techniques.pptx
PPTX
datamining IN Artificial intelligence.pptx
PPTX
Underfitting and Overfitting in Machine Learning.pptx
PPTX
introduction values and best practices in
PPTX
ppt on different topics of circular.pptx
PPTX
list in python and traversal of list.pptx
PPT
ermodelN in database management system.ppt
PPTX
libraries in python using different .pptx
PPTX
tuple in python is an impotant topic.pptx
PPTX
ANIMATION in computer graphics using 3 D.pptx
introduction to python in detail including .pptx
kewords in python using 35 keywords.pptx
stack in python using different datatypes.pptx
Game Playing in Artificial intelligence.pptx
extended modelling in dbms using different.pptx
PRODUCTION SYSTEM in data science .pptx
Presentation1 in datamining using techn.pptx
Dependency modelling in data mining.pptx
INTRODUCTION to datawarehouse IN DATA.pptx
SOCIAL NETWORK ANALYISI in engeenireg.pptx
datamining in engerring using different techniques.pptx
datamining IN Artificial intelligence.pptx
Underfitting and Overfitting in Machine Learning.pptx
introduction values and best practices in
ppt on different topics of circular.pptx
list in python and traversal of list.pptx
ermodelN in database management system.ppt
libraries in python using different .pptx
tuple in python is an impotant topic.pptx
ANIMATION in computer graphics using 3 D.pptx

Recently uploaded (20)

DOCX
573137875-Attendance-Management-System-original
PDF
Well-logging-methods_new................
PPTX
Geodesy 1.pptx...............................................
PDF
Mitigating Risks through Effective Management for Enhancing Organizational Pe...
PPTX
Engineering Ethics, Safety and Environment [Autosaved] (1).pptx
PDF
Evaluating the Democratization of the Turkish Armed Forces from a Normative P...
PPTX
Lecture Notes Electrical Wiring System Components
PPT
Project quality management in manufacturing
PPTX
additive manufacturing of ss316l using mig welding
PDF
keyrequirementskkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
PPTX
Infosys Presentation by1.Riyan Bagwan 2.Samadhan Naiknavare 3.Gaurav Shinde 4...
PPTX
KTU 2019 -S7-MCN 401 MODULE 2-VINAY.pptx
PPTX
OOP with Java - Java Introduction (Basics)
PPTX
Recipes for Real Time Voice AI WebRTC, SLMs and Open Source Software.pptx
PDF
SM_6th-Sem__Cse_Internet-of-Things.pdf IOT
PPTX
MET 305 2019 SCHEME MODULE 2 COMPLETE.pptx
PDF
Embodied AI: Ushering in the Next Era of Intelligent Systems
PPT
Mechanical Engineering MATERIALS Selection
PDF
composite construction of structures.pdf
PDF
R24 SURVEYING LAB MANUAL for civil enggi
573137875-Attendance-Management-System-original
Well-logging-methods_new................
Geodesy 1.pptx...............................................
Mitigating Risks through Effective Management for Enhancing Organizational Pe...
Engineering Ethics, Safety and Environment [Autosaved] (1).pptx
Evaluating the Democratization of the Turkish Armed Forces from a Normative P...
Lecture Notes Electrical Wiring System Components
Project quality management in manufacturing
additive manufacturing of ss316l using mig welding
keyrequirementskkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
Infosys Presentation by1.Riyan Bagwan 2.Samadhan Naiknavare 3.Gaurav Shinde 4...
KTU 2019 -S7-MCN 401 MODULE 2-VINAY.pptx
OOP with Java - Java Introduction (Basics)
Recipes for Real Time Voice AI WebRTC, SLMs and Open Source Software.pptx
SM_6th-Sem__Cse_Internet-of-Things.pdf IOT
MET 305 2019 SCHEME MODULE 2 COMPLETE.pptx
Embodied AI: Ushering in the Next Era of Intelligent Systems
Mechanical Engineering MATERIALS Selection
composite construction of structures.pdf
R24 SURVEYING LAB MANUAL for civil enggi

static members in object oriented program.pptx

  • 1. Static Data Member • A type of data member that is shared among all objects of class is known as static data member. • The static data member is defined in the class with static keyword. • When a data member is defined as static, only one variable is created in the memory even if there are many objects of that class. • A static data item is useful when all objects of the same class must share a common item of information. • The characteristics of a static data member are same as normal static variable.
  • 2. Static Data Member • It is visible only in the class, in which it is defined but its lifetime • Starts when the program starts its execution. • Ends when the entire program is terminated. • It is normally used to share some data among all objects of a particular class. • The main difference between normal data member and static data member is that • each object has its own variable of normal data member. • On the other hand, static data member is shared among all objects of the class. • Only one memory location is created for static data member that is shared among all objects.
  • 3. Difference Between Normal & Static Data Members Object with three normal data members Object with two normal data members and one static data member 200 n 1 a 10 b Object b1 2 a 20 b Object b2 1 a 10 b 100 n Object b1 2 a 20 b 200 n Object b2
  • 4. Uses of Static Class Data • Why would you want to use static member data? • As an example, suppose an object needed to know how many other objects of its class were in the program. • for example : • In a road-racing game, a race car might want to know how many other cars are still in the race. • In this case a static variable count could be included as a member of the class. All the objects would have access to this variable. • It would be the same variable for all of them; they would all see the same count.
  • 5. Separate Declaration and Definition • Static member data requires an unusual format. • Ordinary variables are usually declared and defined in the same statement. • Static member data, on the other hand, requires two separate statements. • The variable’s declaration appears in the class definition, but the • Variable is defined outside the class, in much the same way as a global variable. • Why is this two-part approach used? • If static member data were defined inside the class, it would violate the idea that a class definition is only a blueprint and does not set aside any memory.
  • 6. Separate Declaration and Definition • Putting the definition of static member data outside the class also serves to emphasize that • the memory space for such data is allocated only once, before the program starts to execute, and that • one static member variable is accessed by an entire class; each object does not have its own version of the variable, as it would with ordinary member data. • In this way a static member variable is more like a global variable.
  • 7. Write a program that counts the number of objects created of a particular class (1/2) class yahoo { private: static int n; public: yahoo() { n++; } void show() { cout<<“you have created ”<<n<<“ objects so far ”<<endl; } };
  • 8. Write a program that counts the number of objects created of a particular class (2/2) int yahoo::n=0; void main() { yahoo x,y; x.show(); yahoo z; x.show(); } OUTPUT: • You have created 2 objects so far. • You have created 3 objects so far.
  • 9. How it Works • The program declares a static data member n to count the number of objects that have been created. • The statement int yahoo::n=0;defines the variable and initializes it to 0. • The variable is defined outside the class because it will be not part of any object. • It is created only once in the memory and is shared among all objects of the class. • The variable definition outside the class must be preceded with class name and scope resolution operator ::. • The compiler does not display any error if the static data member is not defined. • The linker will generate an error when the program is executed. • The above program creates three objects x, y and z. each time an object is created, the constructor is executed that increases the value of n by 1.
  • 10. Write a program that creates three objects of class student. Each of them must assigned a unique roll number. (Hint: use static data member for unique roll number) (1/2) class Student { private: static int r; int rno,marks; char name[30]; public: Student() { r++; Rno =r; } void in() { cout<<“enter name:”; gets(name); cout<<“enter marks:”; cin>>marks; } void show() { cout<<“Roll No:”<<rno<<endl; cout<<“Name:”<<name<<endl; cout<<“Marks:”<<marks<<endl; } };
  • 11. Write a program that creates three objects of class student. Each of them must assigned a unique roll number. (Hint: use static data member for unique roll number) (2/2) int Student::r=0; void main() { Student s1,s2,s3; s1.in(); s2.in(); s3.in(); s1.show(); s2.show(); s3.show(); }
  • 12. How it Works • The above program uses a static data member r to assign unique roll numbers to each object of the class Student. • The static data member is initialized to 0. • The constructor increments its value by 1 when an object is created and then assigns the updated value of r to the data member rno. • It ensures that each object gets a unique roll number.
  • 13. Static member function: • A member function that is declared static has the following properties:  A static function can have access to only other static members(function or variable) declared in the same class.  A static member function can be called using the class name. like, class_name :: Function_name(); test :: getdata();
  • 14. • Static Member Function in C++ • Static Member Function in a class is the function that is declared as static because of which function attains certain properties as defined below: • A static member function is independent of any object of the class. • A static member function can be called even if no objects of the class exist. • A static member function can also be accessed using the class name through the scope resolution operator. • A static member function can access static data members and static member functions inside or outside of the class. • Static member functions have a scope inside the class and cannot access the current object pointer. • You can also use a static member function to determine how many objects of the class have been created.
  • 15. • Static members are frequently used to store information that is shared by all objects in a class. • For instance, you may keep track of the quantity of newly generated objects of a specific class type using a static data member as a counter. This static data member can be increased each time an object is generated to keep track of the overall number of objects.
  • 16. • // C++ Program to show the working of • // static member functions • #include <iostream> • using namespace std; • class Box • { • private: • static int length; • static int breadth; • static int height; • • public: • • static void print() • { • cout << "The value of the length is: " << length << endl; • cout << "The value of the breadth is: " << breadth << endl; • cout << "The value of the height is: " << height << endl; • } • };
  • 17. • // initialize the static data members • int Box :: length = 10; • int Box :: breadth = 20; • int Box :: height = 30; • // Driver Code • int main() • { • • Box b; • • cout << "Static member function is called through Object name: n" << endl; • b.print(); • • cout << "nStatic member function is called through Class name: n" << endl; • Box::print(); • • return 0; • }