![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
Quadruple |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 4.11.2004 Репутация: нет Всего: нет |
Чето я догнать немогу, в чем отличие:
и
Везде в либах пишется const. Это ускоряет работу приложения? ![]() |
||||
|
|||||
Олег М |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 436 Регистрация: 10.6.2004 Где: Москва Репутация: 7 Всего: 7 |
Я так понимаю это методы какого то класса? Иначе большого смысла нет const int GetVal() - ерунда какая-то int GetVal() const; - Так надо писать (хороший стиль ну и вообще), если внутри этого метода ты не меняешь состояние объекта (что-то типа read only), ну и, судя по названию функции, в данном случае. Этот метод можно будет вызывать если ссылка на объект - констатнтная - const CObject &obj или const CObject *pObj иначе - int GetVal(); - означает что в методе изменяется состояние объекта, для константных ссылок вызавать этот метод нельзя |
|||
|
||||
Quadruple |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 4.11.2004 Репутация: нет Всего: нет |
Олег М
Да. Функция просто возвращает значение переменной. А добавление const как-то увеличивает скорость или чего? Или чтоб знать что read only? |
|||
|
||||
Олег М |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 436 Регистрация: 10.6.2004 Где: Москва Репутация: 7 Всего: 7 |
Теоретически да, если компилятор знает, что метод констатнтный, то он его наверняка как-нибудь заоптимизирует. |
|||
|
||||
Quadruple |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 4.11.2004 Репутация: нет Всего: нет |
Олег М
Спасибо за инфу ![]() |
|||
|
||||
Goryachev |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 67 Регистрация: 23.2.2005 Где: Израиль Репутация: нет Всего: нет |
Олег М
Я не думаю. С константного метода можно изменять переменные mutable. |
|||
|
||||
Hroft |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 310 Регистрация: 20.10.2003 Где: Москва Репутация: нет Всего: 3 |
Что ты не думаешь-то? Страуструп: mutable означает "ни при каких условиях не является константой". Он специально создан для обхода константности. Хотя лично я его ни разу не использовал. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |