Ответ
 
Опции вопроса Поиск в этом вопросе Опции просмотра
  #1  
Старый 30.09.2011, 17:19
Аватар для Guest
Guest
Вопрос
Сообщений: n/a
По умолчанию

Пусть мы имеем достаточно большой класс, например Matrix (соответствующий математической матрице), т.е. копировать объекты данного класса лишний раз крайне не хотелось бы. Рассмотрим два варианта функции, отображающей матрицу в число, но перед отображением исходная матрица изменяется:Код:int func(const Matrix& matrix){ SomeClass temp = matrix; temp.transform(); // каким-либо образом трансформирует матрицу return matrix2Scalar(temp); // каким-либо образом отображает матрицу в число}int func(Matrix matrix){ matrix.transform(); // каким-либо образом трансформирует матрицу return matrix2Scalar(matrix); // каким-либо образом отображает матрицу в число}Вариант 1 более ясный, поскольку вариант 2 смотрится как небрежный (банальный недосмотр, когда предполагается передача по конст. ссылке, а не по значению) и заставит заглянуть внутрь функции. С другой стороны, вариант 2 немного более лаконичен и оптимален в плане машинного кода.Собственно, ваши мнения.
Ответить с цитированием
Ответ



Похожие вопросы
Тема Автор Раздел Ответов Последний вопрос или ответ
Передача значений в функцию remove() Guest Продолжение старого архива 0 17.10.2011 01:19
Передача данных в функцию.. Guest Продолжение старого архива 0 16.10.2011 16:16
Передача параметров в функцию по ссылке Guest Продолжение старого архива 0 16.10.2011 16:09
Передача указателей в функцию Guest Продолжение старого архива 0 16.10.2011 15:59
Передача по ссылке или указателю? Guest Продолжение старого архива 0 30.09.2011 17:16



© www.otvetnemail.ru - Форум вопросов и ответов.