我有腦抽筋:C++:const volatile的方法
struct MyStruct
{
int x;
...
inline int getX1() const { return x; }
inline int getX2() const volatile { return x; }
};
volatile MyStruct myStruct;
我明白,編譯器將讓我叫myStruct.getX2(),不會讓我叫myStruct.getX1()
,因爲方法要求volatile結構體/類必須具有這些方法的volatile
限定符。
我的問題是:如果我創造這樣的課,我發佈以供其他軟件程序,是什麼,我會添加或不添加方法揮發性預選賽的原因是什麼?
是因爲一個方法標記volatile
告訴編譯器不承擔任何成員都不volatile
,用於優化的目的,而如果一個方法不標記volatile
,那麼任何成員不能標記volatile
可以優化?
可能的[C++ - 當應用於某個方法時volatile表示什麼?](http://stackoverflow.com/questions/5106196/c-what-does-volatile-represent-when-applied-to-a -method) –