2013-08-05 2 views
0

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

Неправильная практика проходить по ссылке, не проходя по указателям?

+0

А как насчет передачи по значению? – delnan

+4

Зачем вам передавать указатель вместо ссылки? Чтобы загромождать код ненужными * s везде? – chris

+1

Пропускающие указатели допускают nullptr, если это необходимо. И ссылки не позволяют переназначить. Вы можете изменить значение вещи, на которую указывают, но вы не можете указать их на другой объект. – sbaker

ответ

4

Один общий стиль - передавать входные аргументы по ссылке const и выводить аргументы указателем. В этом стиле мы не передаем выходные аргументы неконстантной ссылкой для более четкого выделения ввода из выходных аргументов.

+1

Ну, как код написан в Google, среди других мест. Это не аргумент, что это хорошая идея. Только то, что оно эффективно использовалось в больших аппаратах программного обеспечения. – seanmcl

+0

@ H2CO3 это не безмозглый. На самом деле это довольно часто. Это полезно, когда вы видите 'somefunction (& someobj);' потому что более очевидно, что объект, который будет передан, будет изменен. –

+1

@RyanHaining. Почему я предпочитаю C на C++? (** Вы ** сказали, что это было более очевидно!) –

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

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