![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 8 Всего: 146 |
Доброе время суток форумчане
Чет я сидел разбирался с С++ и никак не пойму , к чему было придуманно и где использутся сабж в функциях классов, зачем их юзать то??? Ответьте плз, разъясните, или на ссылку пошлите, где такое по-нормальному написано, в двух книгах читал , так и не дошло -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 16 Всего: 98 |
const -- просто информирует о том, что метод не изменяет значение членов
static -- метод имеет доступ к данным, объявленным как static ( это если на пальцах... ) -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 8 Всего: 146 |
А если не только на пальцах...
ЗЫ Спасибо -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 16 Всего: 98 |
а если не на пальцах -- тогда глянь в help' e... ( в билдеровском об этом пишут -- должны и в сткдийном написать )
-------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 8 Всего: 146 |
Хм... Посмотрю... только на данный момент билдера нет под рукой
-------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| _hunter |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 16 Всего: 98 |
тогда вот:
и
-------------------- Tempora mutantur, et nos mutamur in illis... |
||||
|
|||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 8 Всего: 146 |
Где то можно скачать эти тексты отдельно от билдера или др.?
Как енто понять? -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| Artiom |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1031 Регистрация: 11.3.2003 Где: Минск\Баку Репутация: нет Всего: 17 |
Это значит что метод, объявленный как константный не может изменять поля класса. -------------------- Если тебя жизнь трахает, значит, ты ещё живой |
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 8 Всего: 146 |
Пнятно сиба. А первое где взять описание С++ или стандарт если есть таковой, полный?
Добавлено @ 11:59 И еще где сабж как правило юзают? -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 16 Всего: 98 |
это вырезка не из стандарта, а из хелпа...
стандарт можно взять тут: http://www.osrc.info/request.php?57 сабж юзают в team-разработке ( да и для себя полезно будет ) -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 8 Всего: 146 |
Тобишь когда толпа один проект делает? за ссылку сяпа ща полезем
-------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| sergejzr |
|
||||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 19 Всего: 360 |
По идее static и const позвляют более или менее отслеживать состояние переменных в процессе выполнения программы. Уже на уровне компилятора они позволяют убирать/вводить ограничения
static - переменная будет удалена только по окончанию программы
const - переменную обьявленную так после инициализации нельзя будет изменить. что так же означает, что ты не сможешь передать такую переменную в функцию, которая принимает не const. Таким образом ты точно можешь сказать, что после передачи переменной в разнообразные функции её значение не поменяется.
Итог: static нужно применять как можно реже. В идеальном случае вообще не применять. Ведь это всё занятые участки памяти, которые в программе можно изменить откуда угодно. Один раз задекларированная подобным образом переменная может менять значения откуда угодно и будет очень тяжело проследить за ней. А вот const идеально писать везде где только зн6ачение аргументов в функции не меняется. Таким образом постореная программа будет иметь намного меньше глюков от того, что обьект переданный в функцию вдруг может поменятся. Программист чувствует себя так же намного увереннее. |
||||
|
|||||
| Romikgy |
|
||||||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 8 Всего: 146 |
Тобишь константная фуннкция
не меняет значения аргументов, т.е.
идентично с
-------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
||||||
|
|||||||
| Дрон |
|
|||
![]() Java-ненавистник :) ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3179 Регистрация: 29.12.2002 Где: Санкт-Петербург Репутация: 10 Всего: 93 |
Romikgy
Нет. В первом случае const значит, что метод не меняет полей класса, в котором он находится. -------------------- Да. Именно так. |
|||
|
||||
| sergejzr |
|
||||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 19 Всего: 360 |
Так не бывает. const бывает только функция обьекта и говорит о том, что в этой функции его поля не будут изменены т.е
|
||||
|
|||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 8 Всего: 146 |
Дрон
А во втором что будет менять??? Добавлено @ 14:23
А смысл в ней если компилятор не даст????????? -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| sergejzr |
|
||||||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 19 Всего: 360 |
Ничего. Ведь это не функция класса. В теле этой функции будет однако возможно например распечатать переменные (ведь их не надо при этом изменять).
Смысл, как и в других защитных механизмах (например private) в том, чтобы не дать выстрелить себе в ногу Например возьмём обьект Супер_важный_контракт
|
||||||
|
|||||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 8 Всего: 146 |
Интересно... общий смысл стал понятен,
только зачем такие сложности не пойму , ну да ладно Еще раз благодарен всем ответившим -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 19 Всего: 360 |
Просто если ты два месяца не видел свою программу, ты сам фиг разберёшься, где у тебя что меняется, а где нет. Поэтому простое правило. Пиши как можно больше const. Везде, даже по умолчанию. Убирай их, только если не менять ну совсем нельзя. |
|||
|
||||
| Vyacheslav |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 9 Всего: 59 |
Ну если уж быть совсем точным, то в констатном методе нельзя изменить только те поля класса, которые не имеют спецификатора mutable.
-------------------- С уважением, Вячеслав Ермолаев |
||||
|
|||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |