| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > [const int GetVal() const] против [int GetVal()] |
| Автор: Quadruple 29.3.2005, 19:42 | ||||
Чето я догнать немогу, в чем отличие:
и
Везде в либах пишется const. Это ускоряет работу приложения? |
| Автор: Олег М 29.3.2005, 19:56 | ||
Я так понимаю это методы какого то класса? Иначе большого смысла нет const int GetVal() - ерунда какая-то int GetVal() const; - Так надо писать (хороший стиль ну и вообще), если внутри этого метода ты не меняешь состояние объекта (что-то типа read only), ну и, судя по названию функции, в данном случае. Этот метод можно будет вызывать если ссылка на объект - констатнтная - const CObject &obj или const CObject *pObj иначе - int GetVal(); - означает что в методе изменяется состояние объекта, для константных ссылок вызавать этот метод нельзя |
| Автор: Quadruple 29.3.2005, 20:02 | ||
Олег М
Да. Функция просто возвращает значение переменной. А добавление const как-то увеличивает скорость или чего? Или чтоб знать что read only? |
| Автор: Олег М 29.3.2005, 20:04 | ||
Теоретически да, если компилятор знает, что метод констатнтный, то он его наверняка как-нибудь заоптимизирует. |
| Автор: Quadruple 29.3.2005, 20:10 |
| Олег М Спасибо за инфу |
| Автор: Goryachev 29.3.2005, 23:16 |
| Олег М Я не думаю. С константного метода можно изменять переменные mutable. |
| Автор: Hroft 1.4.2005, 12:50 | ||
Что ты не думаешь-то? Страуструп: mutable означает "ни при каких условиях не является константой". Он специально создан для обхода константности. Хотя лично я его ни разу не использовал. |