const или mutable?
От: unreg_flex  
Дата: 25.07.07 15:59
Оценка:
Итак, допустим имеется класс:

class A {
public:

  int& P() { return p; }

private:
  int p;
};


и функция:

void F(const A& a) {

  // some code ...

  int z=a.P();

  // some code ...

}


поскольку в эту функцию передается константная ссылка, то вызвать P() не удастся,
поэтому обычно P() перегружают:

class A {
public:

  int& P() { return p; }
  const int& P() const { return p; }

private:
  int p;
};


Так вот, когда методов типа P(), появляется очень много, то задалбывает определять их парами.
В принципе так мы и делали, пока кое кто не предложил определять так:

class A {
public:

  int& P() const { return p; }

private:
  mutable int p;
};


В принципе это приводит к уменьшению ненужной писанины, а собственно, кто и как с этим борется?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.