Q:

Count the created objects using static member function in C++

belongs to collection: C++ programs on various topics

0

Static data member

A static data member is also known as "Class Member" and it is available for all classes. In other words – we can say "A static data member is just like a global variable for a class". Generally, static data members are used to maintain the common things related to the class, like counting the objects etc.

Static Member Function

A static member function is used to access or manipulate the static data member, other data member cannot be used with a static member function.

 

All Answers

need an explanation for this answer? contact us directly to get an explanation for this answer

Program:

This program is implemented to count the total number of created objects with the help of static data member and static member function.

  • A static data member needs to be declared first that we declared in private section: Example: static int count;
  • To count the object, data member count must be incremented by 1, that we have done in the constructor because the constructor is invoked when a new object is created.
  • To print the total number of created objects, we created a static member function named totalObjects() which is returning the value of count.
  • Final and important thing – A static data member must be initialized outside of the class with the class name. Example: int Message::count =0;
    #include <iostream>
    #include <string.h>
    using namespace std;
    
    class Message
    {
    	private:
    		char str[30];
    		//static data member to count the objects
    		static int count;
    		
    	public:
    		//constructor
    		Message()
    		{
    			count++;
    		}
    		
    		//member function to initialise message
    		void initMessage(char s[])
    		{
    			strcpy(str,s);
    		}
    		
    		//member function to print message
    		void printMessage(void)
    		{
    			cout << str << endl;
    		}
    		
    		//static member function
    		static int totalObjects(void)
    		{
    			return count;
    		}
    };
    
    //initialise static member function
    int Message::count =0;
    
    //main function
    int main()
    {
    	Message M1;
    	Message M2;
    	Message M3;
    	
    	M1.initMessage("Message one");
    	M2.initMessage("Message two");
    	M3.initMessage("Message three");
    	
    	M1.printMessage();
    	M2.printMessage();
    	M3.printMessage();
    	
    	//printing object count 
    	cout << "Total objects created: " << Message::totalObjects() << endl;
    	
    	return 0;
    }

Output

 
Message one
Message two
Message three
Total objects created: 3

need an explanation for this answer? contact us directly to get an explanation for this answer

total answers (1)

C++ programs on various topics

This question belongs to these collections

Similar questions


need a help?


find thousands of online teachers now
C++ program to print the size of different types o... >>
<< C++ program to declare, read and print dynamic int...