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

Constructor in c++

Hello friends, in this post today, we learn about  what is constructor in c++ and types of constructor . so lets start... Constructor in c++ Constructor:-   A constructor is a “special” member function which initializes the objects of class.  Constructor is used to solve problem of initialization. Properties of constructor:- Constructors are used to construct the object of the class. Constructor name must be same as class name. Constructor is invoked automatically when objects of the class are created. The constructors are always declared in the public section. If declared in the private section then objects are can only be created inside the member functions but serve no purpose. It must be an instance member function , that is, it can never be static. Constructors  do not have any return type not even void so they cannot return any value. Constructor can also be overloaded. Constructors cannot be inherited, but they can be called from the constructors of...

Function with Default arguments in c++

Hello friends, i n this post today, we learn about   Function with Default arguments in c++ .  so lets start... Function with default arguments  Function with default arguments:- In C ++ it is possible for a function not to specify all its arguments. Some of the arguments  may be specified their default values at the time of declaring the function.   Default values are specified when the function is declared. We must add default arguments from right to left. We cannot provide a default value to a particular argument in the middle of an argument list. Default arguments are useful in situations where some arguments always have the same value. For Example, passing marks. In a function with default argument, if one argument is default, all successive arguments  must be default. We cannot provide default values in the middle of the arguments or towards  l eft side. We provide few examples: 1. void fun(int x, int y = 20, int z=35); (valid) 2. void fun(int x,...

function overriding in c++

Hello friends, i n this post today, we learn about w hat is function overriding  in c++ .  so lets start... Function overriding in c++ Function overriding:- In function overriding we write the same function which is defined in base class, we write the same function in derived class with same parameter is known as function overriding.  If base class and derived class have member functions with same name and arguments.  If you create an object of derived class and write code to access that member function then, the member function in derived class is only invokes. Means the member function of derived class overrides the member function of base class. This is called function overriding or method overriding in C++. Example: //Function overriding #include <iostream>   using   namespace   std ; class   A {    public:    void   display ()   {     cout << "This is parent ...