volatile
C ++中成员函数的目的是什么?
问问题
8266 次
2 回答
25
要回答有关“易失性成员函数”意味着什么的问题(这可能是也可能不是发布问题的人最初的意图),将成员函数标记为const
or volatile
(或组合const volatile
)应用这些限定符指向函数中使用的this
指针。如标准所述(9.2.1“this
指针”):
a 的成员函数中 this 的类型
class X
是X*
。如果声明了成员函数,则 this 的类型const
为const X*
,如果声明了成员函数,则为this 的类型,如果声明了成员函数,则为this的类型。volatile
this
volatile X*
const volatile
const volatile X*
因此,通过将成员函数标记volatile
为volatile
.
于 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 回答