Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > const в параметрах функций


Автор: Mormishka 17.4.2011, 14:29
В чем отличие?
int f(const int a)
int f(int a)

Автор: WhKitten 17.4.2011, 14:35
Код

int f(const int a) { a = 5; } // ошибка 
int f(int a) { a = 5; } // ок

Автор: borisbn 17.4.2011, 16:12
WhKitten, кто ж int'у присваивает 5. только http://ru.wikipedia.org/wiki/42_(число)#.D0.92_.D0.BB.D0.B8.D1.82.D0.B5.D1.80.D0.B0.D1.82.D1.83.D1.80.D0.B5 smile

Автор: OlegSK 21.4.2011, 09:21
Возможность делать параметры функции константными приобретает особую важность в том случае, если параметры в функцию передаются не по значению (как в приведенном примере), а по ссылке и в функции этот параметр нужен только для чтения. Передача параметра по ссылке, если через этот параметр функции передается объект большого класса, позволяет убрать накладные расходы и сделать программу быстрее (т.к. конструктор копирования класса при этом использоваться не будет) и по используемой памяти (т.к. копия объекта не создается). При этом объявление параметра-ссылки константным позволяет компилятору проконтролировать, чтобы функция не изменяла этот объект.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)