mutable specifier

   
mutable specifier Mutable data member specifier

  storage-class-specifier  := mutable 

The mutable specifier can be used with the declaration of a data member. Using it means that the member can be modified even if the containing object is const .

Example

 // Represent a point in Cartesian coordinates. If the user requests polar // coordinates, compute and cache the polar coordinates. If the Cartesian // coordinates change, the polar coordinates must be recomputed. The polar // coordinates are computed only if they are needed. struct point {   double angle(  ) const {     if (! has_angle_) {       angle_ = tan2(y, x);       has_angle_ = true;     }     return angle_;   }   void x(double x) { x_ = x; has_angle_ = has_arg_ = false; }   ... private:   double x_, y_;  mutable  double angle_, arg_;  mutable  bool has_angle_, has_arg_; }; int main(  ) {   const point pt(1, 2);   std::cout << pt.angle(  ); } 

See Also

class , const , declaration , type , Chapter 6

   


C++ in a Nutshell
C++ in a Nutshell
ISBN: 059600298X
EAN: 2147483647
Year: 2005
Pages: 270
Authors: Ray Lischner

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net