什么是QScopedValueRollback的用途

时间:2012-12-25 01:48:33

标签: qt

我在Qt 4.8.1中看到了这个类QScopedValueRollback。任何人都可以帮助显示这个新类的使用示例?对不起我的英语不好。我不太明白为什么它的文档有用且需要它。所以我想如果有人能提供一个示例代码,我可以更清楚地理解它

1 个答案:

答案 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块