Singleton in C++
In this tutorial, we will learn about Singleton in C++.
In C++ Singleton pattern is a design pattern that puts a limit on a class to instantiate its multiple objects.
The ‘Singleton’ term uses also in mathematics where it is known as a ‘Unit Set’ is a set exactly one element.
In the Singleton pattern, A class can produce only one instance or object in the complete execution of a program. Thus, it is a way of defining a class where a class needs only one object. It should not have multiple objects at any cost.
Requirements for Singleton Design Pattern in C++
- Static member
- private constructor
- static function
Example:
#include<iostream> using namespace std; class Singleton { private: static Singleton*i; Singleton(); public: static Singleton* getInstance(); }; Singleton* Singleton::i = 0; Singleton* Singleton::getInstance() { if (i== 0) { i= new Singleton(); } return i; } Singleton::Singleton() {} int main() { Singleton* p = Singleton::getInstance(); Singleton* q = Singleton::getInstance(); cout << p << endl;//both will print same address cout << q << endl; }
Global Access:
The instance of a class should be globally accessible. so that each class can use it.
Only one Instance:
It should have only one instance.
Early Initialization:
It initializes a class whether it is being used or not.
Lazy Initialization:
And in lazy we have to initialize a class when it requires.
Advantages:
Single Access Point Ex:-Logger, Database Connection
Save Memory Ex:- only one need of instance so why create so many.
Usage:
Logger:
The log file generations use singleton class
Game setting
Hardware interface access
Cache
Next Topic -: Get all the files in a directory using C++
Leave a Reply