Singleton Design Pattern in C++

Hello learners, here we are going to learn a special and important topic that is “Singleton Design Pattern” in C++.

Before diving into the concept directly, let us understand what actually “Singleton Design Pattern” means!

Singleton Design Pattern

Singleton Design Pattern is nothing but a simple design pattern that has a normal class that allows the creation of exactly one object of it and provides global access to the created object.

Now, let us understand this concept in a practical way by implementing it in C++.

Implementation:

step 1: We have to create a class that has its constructor as private so that the user could create only one object.

step 2: The creation of a private static member.

step 3: we have to create a static member function to get an instance.

Example Code:

STEP 1:

Include all the required header files and namespaces.

#include <iostream>
using namespace std;

STEP 2:

Create a class named Singleton with required private data members and a private constructor named Singleton(), a public data member function named getInstance() to get the instance of the object, setData() to set the data and getData() to return the data value.

class Singleton { 
private:
 static Singleton *inst;
 int data;
 Singleton() {}
 public:
 static Singleton *getInstance() { 
 if(inst == NULL) {
  inst = new Singleton();
 }
 return inst;
 }
 void setData(int val) { 
 data = val;
 }
 int getData() { 
 return data;
 } 
};

STEP 3:

Define inst variable with NULL value outside the class and create a main() function and call the getInstance() function and then call the setData() function and print the value using the getData() function.

Singleton *Singleton::inst=NULL;
 int main() {
 Singleton::getInstance()->setData(100);
 cout<<"Data = " << Singleton::getInstance()->getData() << "\n";
 }

Output:

Data = 100

Leave a Reply

Your email address will not be published. Required fields are marked *