когда передавать аргументы функции по ссылке, а когда по адресу? - PullRequest
3 голосов
/ 27 сентября 2008

Может ли кто-нибудь объяснить с некоторыми примерами, когда лучше вызывать функции по ссылке, а когда лучше вызывать по адресу?

Ответы [ 3 ]

3 голосов
/ 27 сентября 2008

Это уже обсуждалось. См. Указатель против ссылки .

2 голосов
/ 28 сентября 2008

Одно хорошее соглашение:

  • Передавать объекты по указателю всякий раз, когда ими можно манипулировать ( побочный эффект или как вывод ) с помощью функции.
  • Передача всех других объектов по константной ссылке .

Это очень четко указывает вызывающему абоненту с минимальной документацией и нулевыми затратами на производительность, какие параметры являются постоянными или нет.

Вы можете применить это к примитивным типам, а также, но это спорный вопрос, как должны ли вы или нет использовать константные ссылки для параметров без выходных, так как они явно проходят по значению и не могут выступать в качестве выхода из функции любым способом (для прямых типов - не указатели / ссылки - конечно).

2 голосов
/ 27 сентября 2008

Передайте ваши аргументы в функцию, используя ссылку, когда это возможно. Передача аргументов по ссылке исключает вероятность того, что они будут NULL. Если вы хотите, чтобы в функцию можно было передавать значение NULL, используйте указатель.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...