Logo

Вход

Войти с помощью соц. сетей
X
 
  • Фильтр
  • Время
  • Показать
Очистить всё
новые сообщения
  • #1 Свернуть

    Зачем модификатор const после сигнатуры функции?

    В стандартном классе есть такой метод:
    PHP код:
    void CTrade::Result(MqlTradeResult &result) const
      {
       
    result.retcode   =m_result.retcode;
       
    result.deal      =m_result.deal;
       
    result.order     =m_result.order;
       
    result.volume    =m_result.volume;
       
    result.price     =m_result.price;
       
    result.bid       =m_result.bid;
       
    result.ask       =m_result.ask;
       
    result.comment   =m_result.comment;
       
    result.request_id=m_result.request_id;
       
    result.retcode_external=m_result.retcode_external;
      } 
    Зачем используется const после сигнатуры? Если бы перед переменной, это понятно. Значение не должно быть изменено (директива для компилятора). А здесь что-то странное..
  • <a href="https://www.instaforex.org/ru/?x=ruforum">InstaForex</a>
  • #2 Свернуть

    Сообщение от скальпер Посмотреть сообщение
    Зачем используется const после сигнатуры?
    Об этом написано в справке.
    Метод с модификатором const называется постоянным и не может модифицировать неявные члены своего класса. Объявление постоянных функций класса и постоянных параметров называется контролем постоянства (const-correctness). Благодаря такому контролю можно быть уверенным, что компилятор проследит за неизменностью значений объектов и выдаст ошибку еще на стадии компиляции в случае нарушения.
     

    Комментарий

    • #3 Свернуть

      Справку я читал. Но каким боком она относится с данному случаю? Ведь постоянные члены класса по факту уже имеют модификатор const. Поэтому дополнительно лепить ещё такой же модификатор после сигнатуры, как по мн излишество. Нечто подобное писалось на форумах С++. Я вчера читал. Как по мне, логично проследить только момент связанный с передачей объект или указателя на объект. Там да.. есть резон. А здесь.. в функции Result какие есть параметры постоянные?

      Комментарий

      • <a href="https://www.instaforex.org/ru/?x=ruforum">InstaForex</a>
      • #4 Свернуть

        Сообщение от скальпер Посмотреть сообщение
        Но каким боком она относится с данному случаю?
        Читаем тут.
         

        Комментарий

        Сейчас онлайн

        working...
        X