Static data members and static member function, C/C++ Programming

Assignment Help:

Static Data Members:

A data member inside the class can construct as static data member.   There are few

guidelines to be followed when declaring static data member.

  • It is declared as a private data member.
  • Only one copy of the static data member is created any numbers of objects are created from that class. Therefore the static data member will be same for all the objects created.
  • The static member must be defined outside the class like function with class name.
  • The static member can be initialized in the definition and can be used only within its class.

 

The following program will give clear difference between static data count and regular data number members.  The static data is common to all objects but regular data is unique to its object.

 

class item

{int number; static int count; public:

void getdata()

{++count;

number=count;

}

void putdata(void)

{cout<<"Count is "<

cout<<"Number is "<

}

};

int item::count=0;

int main()

 

 

{           clrscr();

item x,y,z; //Three object produced from class item x.getdata();

y.getdata();

z.getdata();

x.putdata(); The count is 3 and number is 1

y.putdata(); The count is 3 and number is 2 z.putdata(); The count is 3 and number is 3

return 0;

}

 

Static Member Function:

The static member function can be specified like static data member.  It works asc a static member data except the static member data is used in static member function.

Rules of Static Member function are given below:

  • The static member function can read static data member only from its class.
  • The static member function is called using class name not object name. class_name::static_function_name( ); It can also be called using object.static_fun( ).

 

The given program will illustrate how the static member function is worked.

 class find

{static int count;

int code;

public:

static void showcount(void)

{cout<<"Count is " <

}

void setcode(void)

{code = ++count;

}

void setcount(void)

{ cout<<"Code is " <

}

};

int find ::count=0;

int main()

{clrscr();

find x,y,z;

x.setcode(); // Code and count is 1. y.setcode(); //Code and count is 2 find::showcount(); //Count is 2

 

z.setcode(); //Code and count is 3 find::showcount(); //Count is 3

 

x.setcount(); // Code is 1 for object x.

 

 

 

 

y.setcount(); // Code is 2 for object y. z.setcount(); // Code is 3 for object z.

 

x.setcode(); // Code and count is 4. y.setcode(); //Code and count is 5 z.setcode(); //Code and count is 6 find::showcount(); //Count is 6

//The value of code will increase from its previous value of that object.

x.setcount(); // Code is 4 for object x. y.setcount(); / Code is 5 for object x. z.setcount(); // Code is 6 for object x.

return 0;

}

 

Since the count is declared as static it has only one copy irrespective of number of objects created.   When static count function called again and again it will increase count for all the objects created simultaneously therefore the count will be uniform for all object, but for the data member code it is unique for each object created because it is not a static data member.  Therfore from the above example there will only one value for count data member irrespective of number of objects constructed since it is a static data member, where as for code data member the value will be different for each object.


Related Discussions:- Static data members and static member function

Need help, how to make basics strong and best logic skills what are the bes...

how to make basics strong and best logic skills what are the best way to be a expert programmer ? what counts a lot knowledge or practice?

Define the recursion function in c, Define the Recursion Function in C? ...

Define the Recursion Function in C? In C, it is potential for the function to call themselves a function is describing 'recursive' if a statement within the body of a function

Strings, A string S is said to be "Super ASCII", if it contains the charact...

A string S is said to be "Super ASCII", if it contains the character frequency equal to their ascii values. String will contain only lower case alphabets (''a''-''z'') and the asci

Write a program to compute the equation, Write a program to compute the fol...

Write a program to compute the following equation for values of time.           y = 2x+3   The values of time are stored in the file program.dat and the solution should be display

Explain quick sort and tree sort, Question 1 Explain Abstract data types w...

Question 1 Explain Abstract data types with its characteristics Question 2 Let us say your Learning Centre decides to store all the three types of student data Register

C program, Just need the answers to the following 3 questions. "NO NEED to ...

Just need the answers to the following 3 questions. "NO NEED to write a program compile or run it, do not need it. Just need the answers for the following questions. Example quest

Oop, write a program which has three classes

write a program which has three classes

Define and explain flow chart with an example, C Programming and Data Struc...

C Programming and Data Structures 1. Define and explain flow chart with an example. 2. Write an algorithm to print all even numbers in descending order and draw the flowcha

What are literals, Literals (Constants) Constants are data storage loca...

Literals (Constants) Constants are data storage locations whose address is not accessible for the user. Their value is not altered during the course of the program. Literal

Command line program to find name matches, What's a six-letter word that ha...

What's a six-letter word that has an e as its first, third, and fifth letter? Can you find an anagram of pine grave. Or how about a word that starts and ends with ant (other than a

Write Your Message!

Captcha
Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd