Как компилятор определяет, какие функции-члены мутируют?C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Как компилятор определяет, какие функции-члены мутируют?

Сообщение Anonymous »

Меня заинтересовал комментарий к одному из моих постов:


Меня тоже. Я также даю аксессорам/мутаторам те же имена.


Мне было интересно об этом, потому что я всегда использовал setBar(int bar)< /code> вместо мутатора с тем же именем. Я хочу знать: может ли компилятор определить на основе константного идентификатора, что меняется во время выполнения, или он может использовать то же имя функции, потому что у нее есть параметр?

Будет ли это компилируется нормально:

Код: Выделить всё

class Foo
{
int bar_;

public:
int bar() { return bar_; }
void bar(int bar) { bar_ = bar; }
}
Или мне нужно сделать это (я понимаю, что мне все равно следует это сделать, просто поговорите со мной об этом):

Код: Выделить всё

int bar() const { return bar_; }
Я не знаю, что есть что. Корректность const важна, поэтому я думаю, что мне бы хотелось, чтобы компилятор возражал против перегрузки, поскольку одна из них мутирует, а другая нет.

Почему это работает именно так?

Подробнее здесь: https://stackoverflow.com/questions/123 ... ons-mutate
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»