| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > функция возвращает cont int |
| Автор: LexusCheby 17.9.2007, 15:10 |
| Вот встретил такую функцию. const int f() cont { return time; } Писали солидные люди, а я никак не пойму зачем передний const :( |
| Автор: EnergoHokum 17.9.2007, 15:17 |
| Чтобы вызывающий не смог руками изменить время? |
| Автор: Fazil6 17.9.2007, 15:22 |
| видимо, хотели чтобы полученное значение использовалось исключительно как константа |
| Автор: archimed7592 17.9.2007, 16:04 |
| LexusCheby, это считается хорошей привычкой делать возвращаемые значения const. Точно так же, как и конструкторы explicit. Т.е. по умолчанию всё const, всё explicit и т.д. Для примитивных типов разницы никакой, а вот с агрегатами ситуация намного интересней. |
| Автор: DjoNIK 17.9.2007, 20:31 |
| А от каких проблем это может уберечь? |
| Автор: JackYF 17.9.2007, 20:34 | ||
от, например
|
| Автор: DjoNIK 17.9.2007, 20:38 | ||
А что в
b - это функция? |
| Автор: Mayk 17.9.2007, 20:52 | ||
Ну не int'ы же. |
| Автор: DjoNIK 17.9.2007, 20:55 | ||
Хорошо. Как быть с SomeMyClass, от чего я оберегаю себя и пользователей моего кода, если функция возвращает const SomeMyClass? |
| Автор: DjoNIK 17.9.2007, 21:14 |
| Прошу прощения за Придется воспринять это за аксиому без логического объяснения. |
| Автор: Evgen24 17.9.2007, 23:12 |
Эффективность этого приема проявляется при написании больших программ. Лучше сразу обозначить константами те переменные которые в функции не должны менятся, чем потом неделю искать ошибку! Вообще в больших программах, чем больше ты констант из переменных в функциях вводишь, тем меньше ошибок! |
| Автор: DjoNIK 18.9.2007, 00:26 | ||
В принципе и в небольших программах - это тоже выручает! Но лучшее - враг хорошего!!! Можно ведь и перестараться. |
| Автор: archimed7592 18.9.2007, 05:04 |
Mayk, ключевое слово "привычка". Дальше думай сам. |
| Автор: DjoNIK 18.9.2007, 10:40 |
| То есть ставить const в возвращаемом значении - правило; не надо ставить лишь в редких случаях (исключения). Но не наоборот. Просто до этого топика я ни разу такой конструкции не видел. Она мне кажется экзотической и мое сознание сознание отказывается воспринимать это как истину! Но я что-нибудь придумаю с вашей помощью |
| Автор: archimed7592 18.9.2007, 10:55 | ||
Для кого как. Мне с этим правилом легче живётся |