Re: const в аргументах методов
От: tstalker Украина  
Дата: 04.04.16 06:32
Оценка:
Здравствуйте, yaser, Вы писали:

Y>1. Насколько оправдано написание const спецификатора при передаче в метод параметров по значению? Может в этом нет смысла, ведь идет копирование?


Я обычно следую простым правилам:
1. Если аргумент внутри функции не модифицируется — пишу const.
2. Если аргумент типа класса — передаю по ссылке.
3. Если аргумент указатель и исходный объект не модифицируется — пишу const.
4. Если аргумент массив и исходные данные не модифицируются — пишу const указатель.

Y>2. Насколько хорошо возвращать ссылку на члены класса?


Возврат нестатическим методом класса ссылки на член класса — это норма. (Ц) Малышева .
В особенности если ссылка константная.
Бойся возврата указателя либо ссылки на локальный объект функции!
Вот там действительно подводные камни.
К счастью, обычно компилятор предупреждает об этом.

Y>Может быть история что ссылка осталась, а класса нет. Может лучше отдавать по значению?


Видимо, ты хотел сказать нет объекта класса?
Don't worry, be happy! (C) Bob Marley
Если нестатический метод класса вызывается от имени объекта класса, можно не переживать.
Вот если от имени указателя на несуществующий объект класса — тогда да, проблема.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.