首页| 论坛| 消息

标题:【提问】问一个关于析构函数的问题!
作者:kytexzy
日期:2006-01-09 16:31
内容:

按照Qt的文档,我们派生一个基于QObject的构件时,当这个构件销毁时它自己会回收存储空间,所以一般我们无需关注析构函数。
现在在我派生的一个构件中我提供了一个成员函数用来断开数据库的连接,我想在构件销毁时自动断开数据库的连接,所以我把它加进了该派生构件的析构函数,我想问一下对该构件中的其他指针指向的数据,我不手动delete它们,它们还会像默认的构造函数那样被自动删除吗?


#1 [kytexzy 01-09 20:49]
我写了一个析构函数,函数中调用了一个removeConnection()函数,原型如下:
bool removeConnection(QString &dbConnection)
{
QSqlDatabase db = QSqlDatabase::database(dbConnection);
if (db.isValid()) {
return false;
}
db.close();
QSqlDatabase::removeDatabase(dbConnection);
return true;
}
我测得析构函数中removeConnection()的返回值是false,所以我断定这值前连接数据库的QSqlDatabase对象已经被自动销毁了,即无需用析构函数来销毁数据库的连接对象。
不知道大家意见如何?
#2 [XChinux 01-11 01:43]
有父子关系的widget,它会自动的析构。

回复 发表
主题 版块