Skip to main content

Static data members and functions in c++

Hello friends, in this post today, we learn Static data members and functions in c++. so lets start...

Static data members and functions in c++, static data member, static member function
Static data members and functions 



Static Data Members:-

We know that whenever an object is created separate copies of data members are created for each object. 


Data members of the class which are shared by all objects are known as static data members also known as (class variables).


But in case of static data members only one copy of static data members is available which is shared among all the objects created.


They are created by placing static keyword before variable declaration.


Static members are declared inside the class but are initialized outside the class as :

data_type class_name : : static_variable =value;


It is initialized to zero when value is not given by the programmer. 


It is visible only within the class but its lifetime of a static variable is the entire program.


Static members are generally used to maintain values common to the entire class.


Example:-

#include<iostream>
using namespace std;

class static_variable
{
   private:
   static int s; //static variable
int i;

   public:
   void input(int x)
   {
     i=x;
   }

   void show()
   {
    cout<<"i="<<i<<endl;
    cout<<"s="<<s<<endl;
   }
};

int static_variable::s=20; // assigning static variable value

int main()
{
static_variable d1,d2;
d1.input(10);
d1.show();

d2.input(34);
d2.show();

return 0;
}

Output:-

i=10
s=20
i=34
s=20



Static member functions:

Static functions are functions which are made static by placing keyword static before function definition in side the class.


All static function of class must be defined inside the class. You cannot separate the declaration and definition of a static member function.


In a static function only static data members, other static variables or other static function can be used.


Though static member function is called using class name with : : operator. It can be called explicitly using objects of the class.


Static member functions are associated with a class, not with any object.


They cannot be virtual.


They cannot be declared as constant or volatile.


A static member function can be called, even when a class is not instantiated.


There cannot be static and non-static version of the same function.


A static member function does not have this pointer.


Example:

#include <iostream>
using namespace std;

class static_Demo
{
  public:
  static void show()   //static function 
  {
    cout<<"Demo of static function \n";
  }
};

int main()
{

 static_Demo d1;
 static_Demo::show();  // accessed using scope resolution operator
 d1.show();            // accessed using object
 return 0;

}

Output:-

Demo of static function 
Demo of static function 



I hope that whatever information I have given in this post today, you have liked it and you have understood it.so keep learning and wait for the next post that will help you to increase your knowledge with the something new information.

Thank you so much for reading. And take care about yourself and your family.


Comments

Popular posts from this blog

What is reference variable in c++

Hello friends, in this post today, we learn about What is reference variable in c++. and what is its major use  in c++ . so lets start... Reference variable in c++ Reference variable:- Reference variable is a new concept in C++. A reference variable is a variable which provides an alias (alternative name) for a previously defined variable or any constant. Reference variable is an internal pointer. Declaration of reference variable is preceded with & symbol ( but do not read it as ‘address of ‘). Reference variable must be initialized during declaration. It can be initialized with already declared variables only. Reference variables can not be updated. This mechanism is useful in object oriented programming because it permits the manipulation of objects by reference, and eliminates the copying of object parameters back and forth. It is also important to note that references can be created not only for built-in data types but also for user- defined data types. Syntax: Data_...

'this' pointer in c++

Hello friends, i n this post today, we learn about 'this' pointer in c++ and what is the  use  of   'this'  pointer .  so lets start... this pointer in c++ 'this' pointer:- The this pointer is a special pointer which is a built-in pointer. and  'this' is a keyword. It stores the  address of current object in context. That is the current object which can be referred using this  pointer anywhere in the class. Important Points About this Pointer:- The this pointer can be used only inside the class i.e., only  inside the member function of the class and cannot be used outside and  static member of the class. The object’s address is available from within the member function as the this pointer. It  is legal, through unnecessary, to use this pointer when referring to members of the class. The  expression (*this) is commonly used to return the current object from a member function. this is a local object pointer in every instanc...

Destructor in c++

Hello friends, in this post today, we learn about what is Destructor in c++ and why we use Destructor in c++. so lets start... Destructor in c++ Destructor:- Destructor is a special and  instance member function of a class. Destructor is a member function whose name must be same as class name but is preceded by a tilde sign (~). The purpose of destructor is to destroy the object when it is no longer needed or goes out of scope. It should be defined to release resources allocated to an object. Features of Destructor:- Destructor should be declared in the public section. Destructor can never be static. Once a destructor is called for a object, the object will no longer be available for the  future reference. Destructor never  takes any argument nor it returns any value nor it has return type (no overloading is possible). Destructor is invoked automatically by the complier when object goes out scope  of the program. There is no explicit or implicit category for a dest...