24

volatileC ++中成员函数的目的是什么?

4

2 回答 2

25

要回答有关“易失性成员函数”意味着什么的问题(这可能是也可能不是发布问题的人最初的意图),将成员函数标记为constor volatile(或组合const volatile)应用这些限定符指向函数中使用的this指针。如标准所述(9.2.1“this指针”):

a 的成员函数中 this 的类型class XX*。如果声明了成员函数,则 this 的类型constconst X*,如果声明了成员函数,则为this 的类型,如果声明了成员函数,则为this的类型。volatilethisvolatile X*const volatileconst volatile X*

因此,通过将成员函数标记volatilevolatile.

于 2010-03-15T03:20:18.757 回答
8

编辑:

当问题与 volatile 关键字有关时,发布了此答案。问题似乎已被第三方更改。

原来的:

Volatile 通知编译器它不应该假设它刚刚放入标记为 volatile 的变量中的值将在下次使用它时存在......它必须在再次使用它之前检查当前值。

一个示例是,如果变量表示可能被另一个进程更改的内存位置。

这是一个例子(自从我做 C++ 以来已经很久了,所以请原谅任何小的语法问题):

volatile int x;

int DoSomething()
{
    x = 1;

    DoSomeOtherStuff();

    return x+1; // Don't just return 2 because we stored a 1 in x.  
                // Check to get its current value
}
于 2010-03-15T02:36:03.470 回答