在C ++中,可以从析构函数中调用非成员函数(自由函数或其他对象的成员)吗?我正在调用一个(非虚拟的,虽然在这种情况下它应该不重要)一个不同类的对象的方法。此方法在尝试访问其成员时崩溃。
另一方面,如果这个不同的对象是被破坏对象(Qt)的子对象,这有关系吗?
答案 0 :(得分:3)
通常,析构函数可以调用正确销毁对象所需的任何函数。但是,有几点需要注意:
如果从析构函数调用的函数抛出异常,则必须在析构函数中捕获并处理异常。
从析构函数调用的函数不得无条件地创建和销毁析构函数所属类型的对象(因为这将导致无限递归)。