2016-03-28 8 views
0

私は、このポインタを揮発性として作るためにメンバ関数宣言の最後にvolatileキーワードを追加することができますが、C++コンストラクタ内で揮発性のポインタとしてこれを作る方法

class A { 
    void method() volatile; // inside method this is volatile pointer. 
    A() {;} // How to make this as volatile pointer here. 
} 

おかげ

this
+0

とにかく、どのような状況でvolatileがコンストラクタで使用されるのだろうかと思います。オブジェクトは実際には有用であるために複数のスレッドからアクセス可能でなければならない –

+1

コンストラクタが呼び出される時点でオブジェクトインスタンスが存在しないため、コンストラクタはオブジェクトインスタンスのオーバーロード解決によって選択されないため、コンストラクタを修飾することはできません。 –

+0

私は 'volatile'はほとんどあなたが望むものではないことに注意したいと思います。そのセマンティクスは絶望的に指定されておらず、*何もスレッドセーフではありません。たいていの場合は、代わりに 'std :: atomic'を手に入れたいと思うでしょう。 –

答えて

3

ポインタの値は、任意のオブジェクトの定数であり、いかなる場合に変更できないので、揮発性としてthisマーキングの任意のローミングサービスを行いません。

関連する問題