Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Language: C++
Expertise: Advanced
Jan 18, 2000

Declaring a Volatile Member Function

You're probably familiar with const member functions such as:

 
  class A
  {
  public:
    int get_x() const; // can't change A's state
  };

C++ also supports volatile member functions. You declare a member function with the volatile specifier to ensure that it can be called safely for a volatile object:

 
  class B
  {
    int x;
  public:
    void f() volatile; // volatile member function
  };

  int main()
  {
    volatile B b;  // b is a volatile object
    b.f();  // call a volatile member function safely
  }

The object b is declared volatile. Calling a non-volatile member function from this object is unsafe, because b's state might have been changed by a different thread in the meantime. To ensure that f() can be called safely for a volatile object, it's declared volatile too.

Danny Kalev
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap
Thanks for your registration, follow us on our social networks to keep up-to-date