Browse DevX
Sign up for e-mail newsletters from DevX

Tip of the Day
Home » Tip Bank » C++
Language: C++
Expertise: Advanced
Jul 26, 2002



Building the Right Environment to Support AI, Machine Learning and Deep Learning

How to Ensure that Only One Object of a Class Exists in Your App

Sometimes you want to make sure that you will have only one object of a specific class in your application. There is a simple technique for doing this. This example code uses the class Foo:
class Foo
	static Foo* GetInstance()
		static BOOL bInit = FALSE;
		if (bInit == FALSE)
			bInit = TRUE;
			m_pInstance = new Foo();

		return m_pInstance;
	Foo() {}

	static Foo *m_pInstance;

Foo* Foo::m_pInstance = NULL;

Now the only way you can create an object of type Foo is by calling to the static method GetInstance(). For example:
Foo foo(); // compilation failure - constructor is private
Foo* pFoo1 = Foo::GetInstance(); // the right way to get 
pointer to Foo object
Foo* pFoo2 = Foo::GetInstance(); // get pointer to the 
same object as pFoo1 and doesn't create new object
Tomer Abramson
Comment and Contribute






(Maximum characters: 1200). You have 1200 characters left.



Thanks for your registration, follow us on our social networks to keep up-to-date