C++ Tutorial/Language Basics/mutable

Материал из C\C++ эксперт
Перейти к: навигация, поиск

Demonstrate mutable.

<source lang="cpp">#include <iostream> using namespace std; class MyClass {

 mutable int i;
 int j;

public:

 int geti() const {
   return i; // ok
 }
 void seti(int x) const {
   i = x; // now, OK.
 }

/* The following function won"t compile.

 void setj(int x) const {
   j = x; // Still Wrong!
 }
  • /

}; int main() {

 MyClass ob;
 ob.seti(1900);
 cout << ob.geti();
 return 0;

}</source>

1900"

Demonstrating storage-class specifier mutable

<source lang="cpp">#include <iostream> using std::cout; using std::endl; class MyClass { public:

  MyClass( int v )
  {
     value = v;
  }
  int getValue() const
  {
     return value++;
  }

private:

  mutable int value;

}; int main() {

  const MyClass test( 99 );
  cout << "Initial value: " << test.getValue();
  cout << "\nModified value: " << test.getValue() << endl;
  return 0;

}</source>

Initial value: 99
Modified value: 100