![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| HappyLife |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 642 Регистрация: 17.5.2006 Репутация: 3 Всего: 8 |
Здраствуйте. Скажите пожалуйста, возможноли каким-нибудь Кастом, переменную преобразовать в константную?
|
|||
|
||||
| albertn |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 368 Регистрация: 17.7.2006 Где: г. Ставрополь Репутация: нет Всего: 34 |
Правильно ли я понял? |
|||
|
||||
| 0x07L |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 272 Регистрация: 10.6.2006 Где: Москва Репутация: нет Всего: 5 |
const_cast
|
|||
|
||||
| HappyLife |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 642 Регистрация: 17.5.2006 Репутация: 3 Всего: 8 |
Я уж понял что это он...
Только не разобрался как им пользоваться...
P.S мне нужно переменную класса сделать константной уже после определенных дейсвий. |
|||
|
||||
| HappyLife |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 642 Регистрация: 17.5.2006 Репутация: 3 Всего: 8 |
Походу дела надо использовать геттеры...
|
|||
|
||||
| vinter |
|
||||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 13 Всего: 56 |
он лишает атрибута const
так введи в определенном месте const переменную со значением которое будет у переменной... |
||||
|
|||||
| HappyLife |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 642 Регистрация: 17.5.2006 Репутация: 3 Всего: 8 |
Конст нужно указывать при создании класса... Это не удобно.
|
|||
|
||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
саму переменную нет (С++ строго типизирован), если она изначально не константная в любом другом случае преобразование не const -> const выполняется автоматически если необходимо const, а передается не const -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 53 Всего: 183 |
Константные нестатические члены класса не имеют особого смысла: будучи элементом класса, в константной памяти такая переменная никогда не окажется, а логическую константность может обеспечить сам класс, объявив переменную закрытой и дав доступ только на чтение. Ну а уж методы одного класса проконтролировать несложно.
-------------------- ... |
|||
|
||||
| Rickert |
|
|||
|
Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: 0 Всего: 52 |
Кто может показать практической применение, с необходимостью в const'антах?
-------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
| MAKCim |
|
||||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
всегда можно без них обойтись, программу то сам пишешь другое дело, что это правило хорошего тона - если переменная не должна менять свое первоначальное значение, то ее следует сделать константой в качестве примера можно взять класс, содержащий набор константных флагов
Это сообщение отредактировал(а) MAKCim - 26.8.2006, 15:49 -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
||||
|
|||||
| Rickert |
|
|||
|
Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: 0 Всего: 52 |
Глупо следовать правилам, которые вредят скорости работы и увеличивают зря объём памяти. Если уж хочешь фиксировать значение, то юзай #define. ИМХО -------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
| MAKCim |
|
||||||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
c чего ты взял, что константность вредит скорости и увеличивает объем?
в С++ не рекомендуется (читай Страуструпа)
-------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
||||||
|
|||||||
| Rickert |
|
|||
|
Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: 0 Всего: 52 |
А если тебе в вечерней газете напишут, что программировать опасно для жизни - ты бросишь? Своим умом жить надо. #define как неотъемлемая часть C++. Или приводи полноценный аргумент, а не на дохлого страуса ссылку давай.
А время на обращение по адресу? Наносекунды, но это вредит. Когда пишешь, например, просчёт физики жидкостей - за каждый такт процессора борешься, как за последнюю надежду человечества на выживание. Это сообщение отредактировал(а) Rickert - 26.8.2006, 18:46 -------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
| MAKCim |
|
||||||||||||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
глупые аналогии, даже не хочу комментировать
И при чем здесь константность? ты хочешь сказать что этот код
выполниться быстрее чем этот?
вообще константность в стеке - контроль со стороны компилятора, в глобальной области видимости - возможное размещение в сегменте константных данных
#define к самому языку С++ не имеет никакого отношения, это лишь средство препроцессора языка
А я с аргументами Страуструпа согласен и не собираюсь их тебе приводить, захочешь - прочитаешь Да еще, прежде чем человека оскарблять, сделай то, что сделал он, лучше Это сообщение отредактировал(а) MAKCim - 26.8.2006, 20:02 -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
||||||||||||
|
|||||||||||||
| Rickert |
|
||||
|
Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: 0 Всего: 52 |
"Не имеет никакого отношения, но лишь имеет."
Выполнятся с одной скоростью. -------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
||||
|
|||||
| MAKCim |
|
||||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
?
К чему были предыдущие посты? -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
||||
|
|||||
| EvgenZ |
|
|||
![]() Freedom in me ![]() ![]() Профиль Группа: Участник Сообщений: 407 Регистрация: 3.8.2006 Репутация: 1 Всего: 11 |
Да не только Страуструп очень рекомендует отказаться от препроцессора.
-------------------- <удалено администрацией форума> |
|||
|
||||
| Daevaorn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2155 Регистрация: 29.11.2004 Где: Москва Репутация: 51 Всего: 70 |
||||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |