Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
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

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
{
public:
	static Foo* GetInstance()
	{
		static BOOL bInit = FALSE;
		if (bInit == FALSE)
		{
			bInit = TRUE;
			m_pInstance = new Foo();
		}

		return m_pInstance;
	}
private:
	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.

 

 

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