2017-01-02 9 views
0

я делал некоторые пересмотр для предстоящего испытания и наткнулся на этот вопрос:Почему это по ссылке, а не по стоимости?

Question

Ответ на схеме знак говорит:

Answer

Однако, я хотя бы наоборот. Я думал, что FoodList будет передаваться по стоимости и продуктам по ссылке, учитывая, что продукты меняются. Можете ли вы объяснить, почему это наоборот?

Обновление: ответ может быть неправильным, в схеме отметок есть ряд ошибок.

ответ

0

Единственное объяснение, которое у меня есть, это то, что автор перепутал «по значению» и «по ссылке».

Однако, если производительность играет какую-либо роль, FoodList также должен быть передан в качестве ссылки, поскольку для копирования ссылки обычно менее дорого, чем для копирования всей строки. Некоторые языки, такие как C++, позволяют помечать ссылку как постоянную. Это предотвратит изменение подпрограммы.

Кроме того, в большинстве языков программирования подпрограммы называются функциями и имеют возвращаемые значения. Хорошей практикой является использование аргументов только для входов и возвращаемого значения для выхода подпрограммы. (Для того, чтобы выяснить, почему это хорошая практика, поиск терминов «побочные эффекты» и «ссылочную прозрачность».)

В C++ функция может быть объявлена ​​следующим образом:

std::list<std::string> Make_List(const std::string& foodList); 

 Смежные вопросы

  • Нет связанных вопросов^_^