正如标题所说,
一个典型的答案是:
允许任何和所有代码转换不会改变程序的可观察行为的规则
我们会不时地从某些实现中获取行为,这些行为归因于此规则.好多次错了.那么,这个规则究竟是什么呢.标准没有明确地将此规则作为一个部分或段落提及,那么究竟什么属于这条规则的范围?对我来说,这似乎是一个灰色区域,标准没有详细定义.有人可以根据标准的参考资料详细说明细节.
注意:将其标记为C和C++,因为它与两种语言都相关.
在C++中,对象的析构函数在它创建的块的结束"}"处被调用,对吧?所以这意味着,如果我有:
while(some_condition)
{
SomeClass some_object;
some_object.someFunction();
some_variable = some_object.some_member;
}
Run Code Online (Sandbox Code Playgroud)
那么在循环的一次迭代中创建的对象的析构函数将在循环结束时被调用,然后创建另一个对象,对吗?
谢谢.