Форум вопросов и ответов

Форум вопросов и ответов (https://www.otvetnemail.ru/)
-   Продолжение старого архива (https://www.otvetnemail.ru/prodolzhenie-starogo-arhiva-804/)
-   -   Вопрос читаемости: передача класса в функцию по значению/конст. ссылке? (https://www.otvetnemail.ru/prodolzhenie-starogo-arhiva-804/vopros-chitaemosti-peredacha-klassa-v-funkciyu-po-znacheniyu-konst-ssylke-353370/)

Guest 30.09.2011 17:19

Вопрос читаемости: передача класса в функцию по значению/конст. ссылке?
 
Пусть мы имеем достаточно большой класс, например 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 немного более лаконичен и оптимален в плане машинного кода.Собственно, ваши мнения.


Часовой пояс GMT, время: 05:23.


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