假设对象有一个析构函数:
anObject::~anObject()
{
_functionCalledfromDestructor=1; //this sets the flag = 1
functionCall(); //this function does something different than usual
//on seeing the flag
}
Run Code Online (Sandbox Code Playgroud)
我的问题:
这种在析构函数中编码的样式/方法是一种好的做法吗?
Ern*_*ill 10
像这样的"隐藏频道"总是一个坏主意.函数的行为不应该依赖于不可见的状态.你可以给函数一个参数,然后在析构函数中传递一个值,在其他地方传递另一个值.如果您愿意,可以对更常见的情况使用默认值.
这种在析构函数中编码的样式/方法是一种好的做法吗?
如果函数根据调用的位置执行两个不同的操作,那么您有两个函数,而不是一个函数.使这两个函数实际上是两个函数,你不需要问这个问题.