我在Qt 4.8.1中看到了这个类QScopedValueRollback。任何人都可以帮助显示这个新类的使用示例?对不起我的英语不好。我不太明白为什么它的文档有用且需要它。所以我想如果有人能提供一个示例代码,我可以更清楚地理解它
答案 0 :(得分:1)
我从文档中理解的是..它用于自动将变量回滚到范围之外的值或最后提交的值。
void myfunc(int &val)
{
// new scope
QScopedValueRollBack newScope(val);
val = 2;
.
.
if (err)
throw();
}
int val = 1;
myfunc(val);
// val = 1 again.. unless you call commit() after setting val inside new scope.. in which case val = 2 here.
有用性 - 可用于在抛出异常时恢复状态而无需编写try-catch块