@hauptling

Как называется параметр идущий после метода?

Например, некий метод в классе:

void dosmth(uint8_t value) MYPARAM{
}


я понимаю, что там можно поставить вместо MYPARAM const к примеру, для чего бывает используют такое?
  • Вопрос задан
  • 61 просмотр
Пригласить эксперта
Ответы на вопрос 1
YuriyVorobyov1333
@YuriyVorobyov1333
Software Developer
Это вытекает из требования языка и компилятора, вы можете написать функцию внутри класса:
void PrintClassName(const ClassName& cl) {
cout << cl.Get() << endl;
}

Казалось бы, код занимаются только печатью, принимает параметр по константной ссылке, но при запуске кода вылезет ошибка, и это потому что нигде в методе PrintClassName не указано явно, что он не меняет объект. Компилятор не дает вызвать те методы, для которых не указано явно, что объект они не меняют, достаточно переписать код так:
void PrintClassName(const ClassName& cl) const {
cout << cl.Get() << endl;
}

И все заработает.
Или же мы можем рассмотреть другой вариант, и подставить в какую-нибудь функцию на это место ключевое слово volatile, которое говорит, что значение может меняться из вне.
По сути, все, что можно поставить на место MYPARAM является указателем для компилятора, которое побуждает или наоборот не побуждает его к каким-либо действиям.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы