gpt4 book ai didi

c++ - 我必须明确地调用 Destructor

转载 作者:行者123 更新时间:2023-11-30 02:09:04 27 4
gpt4 key购买 nike

class TsDatabasePool
{
private:
TsDatabasePool(int numDBConn, std::string& DBName, std::string& DBType);
static TsDatabasePool* objInst_;
public:
~TsDatabasePool();
QSqlDatabase* borrowFromPool();
void returnToPool(QSqlDatabase*);
static bool createInstance(std::string& DBName, std::string& DBType);
static TsDatabasePool* getInstance();

};

我的析构函数没有被隐式调用。使用的对象实例 objInst_ 在私有(private)构造函数中分配。我不想在任何现有函数中调用析构函数或调用 delete objInst_。谁能告诉我该怎么办

最佳答案

我相信你在这里试图做的是销毁一个单例对象。
它可以在单线程环境中按如下方式完成:

void TsDatabasePool::Destroy()  
{
if (objInst_)
{
delete objInst_;
objInst_= 0x0;
}
}

理想情况下,您可以使用类似 shared_ptr 的东西来确保对象一直存在,直到没有人需要它为止。

关于c++ - 我必须明确地调用 Destructor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5799294/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com