• 7728阅读
  • 2回复

【提问】问一个关于析构函数的问题! [复制链接]

上一主题 下一主题
离线kytexzy
 

只看楼主 正序阅读 楼主  发表于: 2006-01-09
按照Qt的文档,我们派生一个基于QObject的构件时,当这个构件销毁时它自己会回收存储空间,所以一般我们无需关注析构函数。

现在在我派生的一个构件中我提供了一个成员函数用来断开数据库的连接,我想在构件销毁时自动断开数据库的连接,所以我把它加进了该派生构件的析构函数,我想问一下对该构件中的其他指针指向的数据,我不手动delete它们,它们还会像默认的构造函数那样被自动删除吗?
try to find forgiveness for yourself and forgive others
离线XChinux

只看该作者 2楼 发表于: 2006-01-11
有父子关系的widget,它会自动的析构。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线kytexzy

只看该作者 1楼 发表于: 2006-01-09
我写了一个析构函数,函数中调用了一个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对象已经被自动销毁了,即无需用析构函数来销毁数据库的连接对象。
不知道大家意见如何?
try to find forgiveness for yourself and forgive others
快速回复
限100 字节
 
上一个 下一个