|
2 / 2 / 0
Регистрация: 10.04.2011
Сообщений: 185
|
|||||||||||
Работа с const09.09.2011, 22:17. Показов 18141. Ответов 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 * Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2.
Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники".
В. . .
|
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии.
. . .
|
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
|
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут.
https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc
Первый документ красиво выглядит, но без схемы.
Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
|
|
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере".
Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
|
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти".
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
В качестве источника данных. . .
|
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер
Написал заготовку:
dotnet new console --aot -o UrlHandler
var items = args. Split(":");
var tag = items;
var id = items;
var executable = args;. . .
|
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3.
Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
|