如何检查是否存在单例实例,如果没有则不创建新实例?
How to check if there is an instance of a singleton, and don't create a new one if not?
我想知道如何使用 C++ 检查在运行时是否存在任何单例对象的实例。我当前对 getInstance() 方法的实现如下所示:
singletonclass* getInstance() {
if (pInstance == 0) {
pInstance = new singletonclass();
}
return pInstance;
}
问题是,如果 none 存在,此实现也会创建一个新实例。我只想在代码的某一点上创建一个实例。在我想访问单例对象并且存在 none 的所有其他部分,它应该抛出异常或类似的东西。
有人可以帮我解决这个问题吗?
使用标志微调行为:
singletonclass* getInstance(bool createIfNeeded = true) {
if (pInstance == 0 )
{
if createIfNeeded )
{
pInstance = new singletonclass();
}
else
{
throw MyException();
}
}
return pInstance;
}
在适当的时候调用 singletonclass::getInstance(false);
。
我想知道如何使用 C++ 检查在运行时是否存在任何单例对象的实例。我当前对 getInstance() 方法的实现如下所示:
singletonclass* getInstance() {
if (pInstance == 0) {
pInstance = new singletonclass();
}
return pInstance;
}
问题是,如果 none 存在,此实现也会创建一个新实例。我只想在代码的某一点上创建一个实例。在我想访问单例对象并且存在 none 的所有其他部分,它应该抛出异常或类似的东西。 有人可以帮我解决这个问题吗?
使用标志微调行为:
singletonclass* getInstance(bool createIfNeeded = true) {
if (pInstance == 0 )
{
if createIfNeeded )
{
pInstance = new singletonclass();
}
else
{
throw MyException();
}
}
return pInstance;
}
在适当的时候调用 singletonclass::getInstance(false);
。