C++ Tutorial/Language Basics/mutable

Материал из C\C++ эксперт
Версия от 10:30, 25 мая 2010; Admin (обсуждение | вклад) (1 версия: Импорт контента...)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Demonstrate mutable.

#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;
}
1900"

Demonstrating storage-class specifier mutable

#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;
}
Initial value: 99
Modified value: 100