Share Pastebin
Guest
Public paste!

Untitled

By: a guest | Mar 21st, 2010 | Syntax: C++ | Size: 0.98 KB | Hits: 42 | Expires: Never
Copy text to clipboard
  1. /*
  2. Creational Pattern: SINGLETON
  3. Author: Rajesh V.S
  4. Language: C++
  5. Email: rajeshvs@msn.com
  6. */
  7.  
  8. #include <iostream>
  9.  
  10.  
  11. using namespace std;
  12.  
  13. class Singleton
  14. {
  15. private:
  16.     static bool instanceFlag;
  17.     static Singleton *single;
  18.     Singleton()
  19.     {
  20.         //private constructor
  21.  
  22.     }
  23. public:
  24.     static Singleton* getInstance();
  25.     void method();
  26.     ~Singleton()
  27.     {
  28.         instanceFlag = false;
  29.     }
  30. };
  31.  
  32. bool Singleton::instanceFlag = false;
  33. Singleton* Singleton::single = NULL;
  34. Singleton* Singleton::getInstance()
  35. {
  36.     if(! instanceFlag)
  37.     {
  38.         single = new Singleton();
  39.         instanceFlag = true;
  40.         return single;
  41.     }
  42.     else
  43.     {
  44.         return single;
  45.     }
  46. }
  47.  
  48. void Singleton::method()
  49. {
  50.     cout << "Method of the singleton class" << endl;
  51. }
  52.  
  53. int main()
  54. {
  55.     Singleton *sc1,*sc2;
  56.     sc1 = Singleton::getInstance();
  57.     sc1->method();
  58.     sc2 = Singleton::getInstance();
  59.     sc2->method();
  60.  
  61.     return 0;
  62. }