Задать вопрос
  • В чем отличие *& от * в C++?

    Первое это указатель * на Book.
    Второе это ссылка & на указатель * на Book.

    А значит поменяв во втором случае содержимое указателя вы фактически поменяете содержимое указателя в вызвовшем эту функцию коде - указатель book.

    Но конкретно в этом примере указатель не меняется. А значит и разницы нет.

    Есть ещё один эффект. Когда код вне этой функции поменяет указатель book (например другой поток это сделает), то эта функция может сразу увидеть изменения. Но есть тонкости с кэшированием и volatile.

    UPD: разница все же есть. В варианте со ссылкой присутствует дополнительный уровень косвенной адресации. А значит он капельку медленнее.
    Ответ написан
    Комментировать
  • Как решить следующую задачу?

    @MiiNiPaa
    Брать билет на 60 поездок выгодно, когда количество поездок больше 34:
    34 поездки мелочью: 125*3 + 15*4 = 375 + 60 = 435р
    35 поездок мелочью: 125*3 + 15*5 = 375 + 75 = 450р

    У вас случаи, когда в остатке [35;39] поездок не учитываются.

    EDIT: Хотя случай с 39 поездками учтётся по другим причинам.
    Ответ написан
    Комментировать