Константные методы | Обучение программированию онлайн
Опубликовано: 01.09.2018
Константный метод — это метод, в котором невозможна модификация полей класса. При попытке изменения поля в константном методе, мы получим ошибку компиляции. Например, имеет смысл делать константными get методы. Рассмотрим пример.
Константные методы
#include <iostream> using namespace std; class Test { public: Test() { t = 0; } void setValue(int val) { t = val; } int getValue() const { return t; } private: int t; }; void main() { Test test; test.setValue(99); cout<<test.getValue()<<endl; }
В классе Test есть поле t, а также методы setValue() и getValue(). Мы сделали метод getValue() константным, так как основное его назначение — вернуть значение поля t.
2302 - C++ - урок 8
Ключевое слово mutable .
Если у нас ситуация, когда все-таки нужно изменить одно из полей в константном методе, то такое поле делают mutable, т.е. изменяемым. Рассмотрим пример.
#include <iostream> using namespace std; class Test { public: Test() { t = 0; cnt = 0; } void setValue(int val) { t = val; } int getValue() const { cnt++; return t; } void debug() { cout<<"cnt = "<<cnt<<endl; } private: int t; mutable int cnt; }; void main() { Test test; test.setValue(99); cout<<test.getValue()<<endl; test.debug(); }У нас есть поле cnt, которое представляет собой счетчик. В методе getValue() мы увеличиваем наш счетчик на единицу. Таким образом, в поле cnt содержится количество вызовов метода getValue(). Метод debug() выводит значение нашего счетчика.
Вы можете оставить комментарий ниже.Сегодня | Завтра | ||
USD | 32.62 | 32.50 | |
EUR | 39.90 | 39.92 |
Обменник | Переходов |
Wmchanger | 6 |
E-Market | 5 |
WMtoCash.com | 4 |
Str-Money | 3 |
Hot-Change | 3 |
Вы можете получить WMR-бонус в размере 0,01-0,10 WMR на свой кошелек 1 раз в сутки | |
Кошелек
|
|
Код
|
|
Обмен Webmoney |