简约的析构函数?

TBH*_*TBH 2 c++ oop

我的朋友有一些问题.假设,我们有一个实现数据库连接的类,如下所示:

class DB
{
void Connect();
void Disconnect();
// ...
~DB();
};
Run Code Online (Sandbox Code Playgroud)

在我看来,析构函数应该是minimalistic的,这意味着析构函数不应该在建立连接时调用Disconnect方法.我认为,这应该通过单独的方法完成(本例中为disconnect()).我纠正了,还是我的朋友?

PS.社区维基?

sha*_*oth 8

您的析构函数应该足以清理在对象生存期内获取的所有资源.这可能包括也可能不包括结束连接.否则,如果抛出异常,谁将进行清理?

  • 同意......只是确保在销毁期间不要调用任何虚拟方法. (5认同)