|
2 / 2 / 0
Регистрация: 10.04.2011
Сообщений: 185
|
|||||||||||
Работа с const09.09.2011, 22:17. Показов 18031. Ответов 21
Метки нет (Все метки)
Объясните пожалуйста разницу между вызовами двух функций:
0
|
|||||||||||
| 09.09.2011, 22:17 | |
|
Ответы с готовыми решениями:
21
int const * const foo(const int* param) const - разъясните значение квалификаторов
|
|
Уничтожитель печенек
281 / 209 / 49
Регистрация: 07.02.2010
Сообщений: 724
|
|
| 09.09.2011, 22:21 | |
|
const дает меньше привилегий. И избавляет от случайного изменения данных
1
|
|
|
2 / 2 / 0
Регистрация: 10.04.2011
Сообщений: 185
|
||||||
| 09.09.2011, 22:25 [ТС] | ||||||
|
А есть ли смысл тогда писать:
0
|
||||||
|
Уничтожитель печенек
281 / 209 / 49
Регистрация: 07.02.2010
Сообщений: 724
|
|
| 09.09.2011, 22:39 | |
|
Есть смысл. Если не хотите что бы значение менялось в теле функции, например.
1
|
|
|
53 / 53 / 2
Регистрация: 06.04.2011
Сообщений: 209
|
|
| 09.09.2011, 22:41 | |
|
ITZver, но читающего прототип такой функции отвлечёт спецификатор const к параметру - не указателю. Наверное, никто почти не использует такую форму?
1
|
|
|
22 / 22 / 2
Регистрация: 08.09.2011
Сообщений: 22
|
|||||||
| 09.09.2011, 23:51 | |||||||
|
Вот Вам маленький примерчик:
1
|
|||||||
|
|
|||||||||||||||||
| 10.09.2011, 10:55 | |||||||||||||||||
2
|
|||||||||||||||||
|
Модератор
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
|
||
| 10.09.2011, 12:30 | ||
|
Думаю, вообще хорошая практика объявлять константным всё, что по логике программы не должно изменяться. Во-первых больше шансов заметить ошибку, во-вторых тонкостей не знаю, но с памятью "только для чтения" работа как-то веселее происходит... Вот, что Отцы-Основатели по этому поводу пишут:
1
|
||
|
2 / 2 / 0
Регистрация: 10.04.2011
Сообщений: 185
|
||||||
| 10.09.2011, 21:17 [ТС] | ||||||
|
Тогда поехали дальше... Что дает квалификатор const в данном случае:
0
|
||||||
| 10.09.2011, 21:40 | |||||||||||
|
это неправда какая-то, ваще не компилируется. Где Вы это взяли?
Добавлено через 12 секунд
Наверное это отрывок из класса?
0
|
|||||||||||
|
601 / 569 / 104
Регистрация: 07.11.2010
Сообщений: 2,004
|
|
| 10.09.2011, 21:40 | |
|
dani какая неправда? такой код используется в классе, для константных методов
1
|
|
|
2 / 2 / 0
Регистрация: 10.04.2011
Сообщений: 185
|
|
| 10.09.2011, 21:44 [ТС] | |
|
Да... Я извиняюсь, это по моему я из класса вырезал, где-то. Что значит константный метод?
0
|
|
|
Уничтожитель печенек
281 / 209 / 49
Регистрация: 07.02.2010
Сообщений: 724
|
|
| 10.09.2011, 22:00 | |
|
1
|
|
|
53 / 53 / 2
Регистрация: 06.04.2011
Сообщений: 209
|
|
| 10.09.2011, 22:02 | |
|
adamo86, это значит, что данный метод обязуется не изменять элементы своего класса (он может изменять только элементы со спецификатором const). Имеет смысл использовать для всех методов которые не изменяют состояние объекта. Так же, для константных объектов можно вызывать только константные методы.
0
|
|
|
2 / 2 / 0
Регистрация: 10.04.2011
Сообщений: 185
|
||
| 10.09.2011, 22:02 [ТС] | ||
|
0
|
||
|
53 / 53 / 2
Регистрация: 06.04.2011
Сообщений: 209
|
|
| 10.09.2011, 22:03 | |
|
adamo86, да
Добавлено через 36 секунд В таких методах могут изменяться только неконстантные элементы объявленные со спецификатором mutable.
0
|
|
|
2 / 2 / 0
Регистрация: 10.04.2011
Сообщений: 185
|
|
| 10.09.2011, 22:06 [ТС] | |
|
0
|
|
|
53 / 53 / 2
Регистрация: 06.04.2011
Сообщений: 209
|
|
| 10.09.2011, 22:13 | |
|
adamo86, блин! прости. опечатался. хотел написать, что может изменять только неконстантный объекты, объявленные со спецификатором mutable.
1
|
|
|
|
||||||||||||
| 11.09.2011, 00:32 | ||||||||||||
|
Следующие два кода без проблем пройдут компиляцию. В первом коде имеет место быть явное преобразование указателей и компилятор снимает с себя всю ответственность. Во втором коде работаем со строковым литералом, который по сути есть const-объект, но по языку можно его присваивать в указатель на char без модификатора const, Под линуксом эти коды сломаются на исполнении, под виндой - нет (по крайней мере на борланде у меня не упало)
0
|
||||||||||||
| 11.09.2011, 00:32 | |
|
Помогаю со студенческими работами здесь
20
Что это bool operator== (const CLASS&) const; Отрисовка линий движения материальной точки при u_1=const и u_2=const Const в параметрах. Перед чем нужно употребить const дабы обезопасить данные от изменения Ошибка E2034: Cannot convert 'char const[8]' to 'const wchar_t *' Ошибка: E2034 Cannot convert 'char const[51]' to 'const wchar_t * Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Сочетание глобально распределённой вычислительной мощности и инновационных. . .
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 05.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|