Главная страница | назад





Article #19347: How can I have a class which allows only one object to be created?

 Question and Answer Database
FAQ4347C.txt :How can I have a class which allows only one object to be created?
Category :C/C++ Language Issues
Platform :All
Product :All,
Question:
How can I have a class which allows only one object to be created?
Answer:
There are several ways of doing this. If you want want
the ability to set a limit on the number of objects that
can be created, consider reference counting:
class TFoo
{
private:
static int FCount;
public:
TFoo()
{
if (FCount> 0)
throw ESomeException;
FCount++;
}
~TFoo()
{
FCount--;
}
};
int TFoo::FCount = 0;
If you want to have one and only one object ever
be created then consider the following:
class TFoo
{
private:
static int FCount;
public:
TFoo()
{
static int count = 0;
if (count> 0)
throw ESomeException;
count++;
}
~TFoo() {}
};
2/10/1999 3:01:24 PM

Last Modified: 01-SEP-99