Instantiate a singleton class i.e no more than one instance possible

This tip submitted by Anjan Ghose on 2013-06-30 21:50:51. It has been viewed 7477 times.
Rating of 6.8 with 30 votes



In header file, declare a class that contains a static pointer to itself, and a static declaration to return it. Initialize this to 0 in source file, and provide the static method to return the pointer. For example,

Class single {
  single();
  ~single();
  static single* selfptr;
  static single* instance();
};

single* single::selfptr = 0;
single* single::instance() {
  if (selfptr == 0) {
     selfptr = new single();
  }
  return selfptr;
}


When instantiating in mainstream code, use the instance method i.e

single* myobjectptr;
myobjectptr = single::instance();




More tips

Help your fellow programmers! Add a tip!