|
Заблокирован
|
|||||||||||
Модификатор const в аргументах функций19.07.2011, 22:29. Показов 6302. Ответов 31
Метки нет (Все метки)
Постоянно путаюсь в этих константах. Как писать грамотнее?
Вот так:
А что подскажут уважаемые эксперты? Или может быть есть ещё какие то варианты?
0
|
|||||||||||
| 19.07.2011, 22:29 | |
|
Ответы с готовыми решениями:
31
Const-параметры в аргументах функции Модификатор доступа const |
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
||||||
| 19.07.2011, 22:32 | ||||||
|
Bers, Вообще const есть const... А вы присваиваете этот указатель другому => две переменные указывают на 1 адрес... В функции-то он конечно не меняется... Так что спорно. Я бы писал const.
Ну и вообще имхо резоннее делать через swap или же как в auto_ptr к примеру.
1
|
||||||
|
Заблокирован
|
|||
| 19.07.2011, 22:35 [ТС] | |||
|
0
|
|||
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
||||||
| 19.07.2011, 22:45 | ||||||
|
Не зная реализации трудно подсказать но все же...
1
|
||||||
|
|
|||||||
| 19.07.2011, 22:46 | |||||||
|
Елси я правильно понял, предлагается такой вариант:
1
|
|||||||
|
Заблокирован
|
||
| 19.07.2011, 22:46 [ТС] | ||
|
а... сорри народ. Там 14 строчки на самом деле нету (забыл убрать, когда сюда копипастил)
Да и указатели, что в аргументе, что внутри класса - самые обычные
0
|
||
| 19.07.2011, 22:49 | |
|
Не по теме: А, все понял. Это я в суть дела невъехал))
1
|
|
|
Заблокирован
|
|
| 19.07.2011, 22:54 [ТС] | |
|
Суть в том, что если функция использует свои аргументы только для чтения, то идеологически их нужно объявлять константами. (правило хорошего тона. Хотя лично мне оч не нравится. Но вот, приходится приучать себя)
Но моя функция действительно только читает значение аргумента. Однако! Попандос. Присвоить неконстрантному указателю значение константного нельзя. Что делать? Я только два варианта придумал: либо послать константы нафег (раньше я всегда так и делал), либо использовать кастование. Оба варианта - рабочие, вопрос в том, какой более грамотный? Или может быть вообще, православные люди делают как то иначе?
0
|
|
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
| 19.07.2011, 23:23 | |
|
Bers, дико непривычная сигнатура. опер присваивания ничего не возвращающий...
1
|
|
|
237 / 210 / 29
Регистрация: 08.06.2011
Сообщений: 467
|
||
| 19.07.2011, 23:36 | ||
|
1
|
||
|
Заблокирован
|
|||
| 20.07.2011, 05:47 [ТС] | |||
|
Добавлено через 6 часов 1 минуту И применять его стоит только тогда, когда без него вообще никак не обойтись...
0
|
|||
|
1069 / 848 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
|
|||||||
| 20.07.2011, 06:35 | |||||||
![]()
1
|
|||||||
|
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
|
||||||||||||||||
| 20.07.2011, 07:08 | ||||||||||||||||
1
|
||||||||||||||||
|
Заблокирован
|
|||
| 20.07.2011, 07:32 [ТС] | |||
|
mp_Pointer лишь хранит этот адрес. и все. Больше ничего не делает. Более того, объект класса может избавиться от объекта (обнулить свой mp_Pointer) Но это никак не должно коснуться того объекта, чей адрес помнит mp_Pointer Если туманно и не понятно, я могу выложить больше инфы и кода. Я просто не хочу напрягать читателей обилием букв и кода Добавлено через 4 минуты Правда я не понимаю, для чего, что бы запретить действие возвращать нечто в виде константы? По моему, проще просто запретить...
0
|
|||
|
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
|
|||||||||||||
| 20.07.2011, 07:42 | |||||||||||||
если через него не меняются данные, то он должен указывать на const
1
|
|||||||||||||
|
71 / 76 / 9
Регистрация: 30.06.2011
Сообщений: 176
|
||||||||||||
| 20.07.2011, 07:47 | ||||||||||||
![]()
1
|
||||||||||||
|
Заблокирован
|
||
| 20.07.2011, 07:57 [ТС] | ||
|
1. Он никак не изменяет состояние объекта о котором "помнит". Но он может к примеру "забыть все". Объект от этого никак не пострадает, просто mp_Pointer обнулиться. Тобишь, mp_Pointer так же гарантированно используется исключительно для чтения, либо обнуляется. Это гарантирует программист. 2. Да Добавлено через 4 минуты An1ka, милая, вы не поняли о чём речь.
0
|
||
|
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
|
|||||||
| 20.07.2011, 07:57 | |||||||
имя типа TypeT должно быть там известно
1
|
|||||||
| 20.07.2011, 07:57 | |
|
Помогаю со студенческими работами здесь
20
Модификатор const Очередные грабли с++? Модификатор const в качестве возвращаемого значения
В чем различия константных объектов и константных ссылок на объекты в аргументах функций-членов? int const * const foo(const int* param) const - разъясните значение квалификаторов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога
SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
|
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога
Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip"
Извлеките архив и вы увидите. . .
|
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога
Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д.
Сборка примера
Скачайте. . .
|
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net
REST сервисы временно не работают, только через Web.
Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
|
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
|
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|