Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Singleton

InputParameters.h :

Code Block
#include <iostream> // for cout

class InputParameters  {
public:
  static InputParameters* Instanceinstance();
  void print();

private:
  InputParameters () ;                 // !!!!! Private so that it can  not be called from outside
  virtual ~InputParameters () {}; 

  static InputParameters* m_pInstance; // !!!!! Singleton instance

  // Copy constructor and assignment are disabled by default
  InputParameters ( const InputParameters& ) ;
  InputParameters& operator = ( const InputParameters& ) ;
};

InputParameters.cc :

Code Block
#include "<Package>/InputParameters.h"

InputParameters* InputParameters::m_pInstance = NULL; // !!!!!! make global pointer !!!!!

//----------------
InputParameters::InputParameters () 
{
  std::cout << "!!!!!!!! Single instance for singleton class InputParameters is created \n";
}
//----------------
//----------------
InputParameters* InputParameters::Instanceinstance()
{
  if( !m_pInstance ) m_pInstance = new InputParameters();
  return m_pInstance;
}
//----------------
void InputParameters::print()
 {
  std::cout << "InputParameters::print()\n";
 }