Здравствуйте, столкнулся с таким объявлением функции:
void function() const { }
и впал в ступор)
Подскажите, что значит такое использование const? Опыта в использовании C++ практически не имею, от того и такие вопросы)
P. S. Эта функция внутри класса, если надо могу сделать минимальный пример.
Приветствую, видел когда-то отличное объяснение, которое четко позволяет понять логику, сейчас распишу.
Суть в том, что методы класса имеют неявный параметр this, который может использоваться внутри функций. То есть определение вида:
class TestClass { void testFunction(int arg1, int arg2); }
Можно для наглядности представить в виде:
class TestClass { void testFunction(TestClass *this, int arg1, int arg2); }
this в роли неявного аргумента функции. При использовании const:
class TestClass { void testFunction(int arg1, int arg2) const; }
Можно считать, что мы получаем следующее:
class TestClass { void testFunction(const TestClass *this, int arg1, int arg2); }
То есть в данном случае объект, к которому можно обратиться через this, не доступен для модификации внутри функции.
Вот, нашел тему на SO - https://stackoverflow.com/questions/15999123/const-before-parameter-vs-const-after-function-name-in-c
@aveal да, тоже эту тему изучал, очень доходчиво! Спасибо