|
261 / 209 / 99
Регистрация: 13.12.2015
Сообщений: 1,098
|
|||||||||||
Static члены класса05.01.2016, 08:43. Показов 9430. Ответов 70
Метки нет (Все метки)
Здравствуйте.
есть класс, например
Например:
0
|
|||||||||||
| 05.01.2016, 08:43 | |
|
Ответы с готовыми решениями:
70
класс «Строка» (данные-члены класса – строчка, функции-члены класса – операции)
Static член класса |
|
Комп_Оратор)
|
|||
| 06.01.2016, 21:11 | |||
глобальную переменную. Язык позволяет стать науши, но нигде не написано, что это нужно делать, так же как и нигде это не запрещено делать категорически. Жизнь привлекает всех различными сторонами. ![]() Добавлено через 7 минут
0
|
|||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|||||
| 06.01.2016, 21:26 | |||||
|
ведь ничто не мешает сделать каждому по руке. если проводить аналогию с объектами реального мира, то статики удобно иллюстрировать на муравейнике. каждый муравей - отдельный юнит, но в то же время, все муравьи друг с другом связаны какими невидимыми телепатическими связями. вот что бы организовать подобные "телепатические связи", можно задействовать локальные статики, или статические члены. я хочу сказать, что статики сами по себе никак не мешают моделировать различные элементы реального мира. просто их не нужно пихать туда, где они не нужны. причем ни в техническом плане, ни в плане представления объекта реального мира. Добавлено через 6 минут а там опять вода. такое впечатление, то ли вы сами не знаете что хотели сказать. то ли просто пишите лишь бы что нибудь написать. а то может быть у меня амнезия, и верно, вы меня сейчас ткнете носом в конкретно сообщение, где я сначала задавал вопросы, а потом не читая ответов вывалил половину главы из некоторой книги. заодно вы мне конечно скажите, из какой конкретно книги я чего то там вывалил. Добавлено через 6 минут не обнаружил причин полагать конструкцию well-defined. то, что UB в отдельных случаях может работать, и тот факт, что разработчики платформы могут прозрачно для пользователей использовать где нибудь в недрах библиотеки конструкции, являющиеся UB по стандарту, не является основанием полагать конструкцию well-defined
0
|
|||||
|
Комп_Оратор)
|
||
| 06.01.2016, 21:33 | ||
|
Но остаётся общий лес, и если и его создать, то будет лесной массив, район, область, страна, континент... То есть всегда придётся иметь какие-то статические данные от сущности которую данная программа не представляет в виде объектов. Не люблю разговоров из серии "У меня в ушах бананы". За сим постараюсь не вмешиваться больше.
1
|
||
|
Игогошка!
1801 / 708 / 44
Регистрация: 19.08.2012
Сообщений: 1,367
|
||
| 06.01.2016, 21:35 | ||
|
0
|
||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||
| 06.01.2016, 21:45 | ||
|
нашел массу упоминаний с ссылками на стандарт, что сие есть UB.
1
|
||
|
Игогошка!
1801 / 708 / 44
Регистрация: 19.08.2012
Сообщений: 1,367
|
||||
| 06.01.2016, 22:20 | ||||
|
a->b() == (*a).b() *a само по себе - это не UB. Эта тема уже обсуждалась, ее не поднимаем. (*a).b() - не UB, потому что по-прежнему нигде значение *a не используется и никаких преобразований не выполняется:
0
|
||||
|
1379 / 406 / 144
Регистрация: 22.10.2014
Сообщений: 872
|
||||
| 06.01.2016, 22:51 | ||||
![]() Но : N3242 - §9.4/2
но это скорее нужно воспринимать как исключение из правил и лучше о нём забыть.Как вы точно подметили:
1
|
||||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||||
| 06.01.2016, 23:01 | ||||
и только затем оптимизирует. сначала UB, а затем... а затем уже никто ничего не гарантирует.
ну это как бе итак понятно. однако, сути не меняет. стандарт сказал: разыменовывание нулевого указателя есть UB. стандарт сказал: доступ по указателю суть разыменовывание указателя. что в последствии будет происходить с результатом выражения (*ptr) - монопенисуальный фактор, если UB уже приключилось.
0
|
||||
|
Игогошка!
1801 / 708 / 44
Регистрация: 19.08.2012
Сообщений: 1,367
|
|||
| 06.01.2016, 23:09 | |||
|
0
|
|||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|||||||||||||
| 07.01.2016, 00:47 | |||||||||||||
|
в частности, однозначно сказано: this должен указывать на объект, для которого была вызвана функция-член. одного этого достаточно, что бы однозначно понимать, что доступ к членам класса по нулевому указателю есть UB. и кстати, не очень то интересно, что по этому поводу думаете вы, или я. гораздо интереснее, как ситуацию трактуют компиляторы. например, знаменитый баг в ядре линукса, когда компилятор оптимизировал проверку:
вся её суть сводится к двум вещам: 1. здесь UB, и я так писать не буду. 2. здесь неоднозначность, а значит код, как минимум плохо пахнет. и так писать я так же не буду. полагаю, что подобного рода холиварные темы не имеют практической ценности. потому что на практике проще писать нормальный код, и не создавать проблем ни себе, ни людям.
1
|
|||||||||||||
|
Игогошка!
1801 / 708 / 44
Регистрация: 19.08.2012
Сообщений: 1,367
|
|||||
| 07.01.2016, 11:19 | |||||
![]() Разница в том, что с сями все как раз понятно, их стандарт ясно говорит:
0
|
|||||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|||
| 07.01.2016, 11:37 | |||
Сообщение было отмечено SergioO как решение
Решениеthis должен смотреть на объект в момент разыменовыния указателя. не помню точно, что именно, но помню, что что-то полезное было. а вообще, я из разных холиваров узнал не меньше, чем из книг.
1
|
|||
|
Игогошка!
1801 / 708 / 44
Регистрация: 19.08.2012
Сообщений: 1,367
|
||||
| 07.01.2016, 11:45 | ||||
![]()
1
|
||||
|
261 / 209 / 99
Регистрация: 13.12.2015
Сообщений: 1,098
|
|
| 07.01.2016, 14:01 [ТС] | |
|
посмотрел еще лекцию Лекция по С++. Static, почитал сообщения в данной теме, за что всем участникам благодарен, и с Божьей помощью разобрался. На практике, скорее всего, вопросы еще будут, но на данный момент вопросов больше не имею.
IGPIGP, копировал кусок ранее в сообщения я не для себя, а для такого же новичка, который так же "ткнется" в этот вопрос и ссылка на видео выше тоже не для меня и не для вас. не отвечал на сообщения это не значит не читал.
0
|
|
|
306 / 101 / 18
Регистрация: 04.07.2014
Сообщений: 571
|
||
| 07.01.2016, 15:51 | ||
|
hoggy
Разыменование нулевого указателя не является неопределённым поведением. Так как при обращении к статическому методу вычисленное при разыменовании значение отбрасывается, то обратиться через null pointer к статическому члену возможно. Добавлено через 6 минут P.S. Если у Вас на руках есть принятый стандарт C++11, то там наверняка подобное или эквивалентное дополнение есть. У меня только draft.
0
|
||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|||
| 07.01.2016, 15:51 | |||
|
1. в документе:
2. мне не понятна фраза вырванная из контекста. что за результат такой: "пустое значение" ? результат чего? вот есть у меня некий произвольный класс. что значит "empty lvalue" для этого класса?
0
|
|||
|
306 / 101 / 18
Регистрация: 04.07.2014
Сообщений: 571
|
|
| 07.01.2016, 15:53 | |
|
hoggy
Тем не менее утверждается, что есть. Ибо в 2005 году принято. Точка. У Вас на руках с высокой вероятностью ошибочный документ. Проверьте в самом начале, есть ли там фраза про пример с dereference the null point. Если есть, то этот документ не действителен, в нём есть ряд прямых противоречий, нужно купить новый.
0
|
|
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|
| 07.01.2016, 15:56 | |
|
0
|
|
|
Комп_Оратор)
|
||||
| 07.01.2016, 16:04 | ||||
|
SergioO, посмотрите сколько написано в надежде, что вы это прочтёте. Это примерно аж до этих пор: Static члены класса (странно, почему иной раз ссылка, на пост в этом же топике (?!) выполненная стандартным "копировать ярлык" потом не работает?) То есть я даже не о том, что вы (героически) выложили здоровущий фрагмент из внешнего источника, а о вашем комментарии к нему: Желаю вам пересмотреть отношение к жизни иначе время потратите впустую (имхо).
0
|
||||
|
306 / 101 / 18
Регистрация: 04.07.2014
Сообщений: 571
|
|
| 07.01.2016, 16:26 | |
|
hoggy
Действительно комитет C++11 не ввёл разыменование для nullpointer, мотивируя какими-то сложностями низкого уровня. Приношу извинения.
0
|
|
| 07.01.2016, 16:26 | |
|
Static поля класса Static в описании метода класса
Инициализация static члена класса Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет.
Но обычно это 50 лет и более.
Наверное, закисление почвы происходит сезонно в средней. . .
|
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
|
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS
Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
|
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи.
Через несколько переработок от PHP кода к C89 (надеюсь, 89).
Но довольно запутанно получилось. Код для Linux.
Но если убрать time и то, что с ним. . .
|
|
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки
Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
|
rest api anylogic - выполнение модели на своём русском сайте
anaschu 02.07.2026
Как подружиться с AnyLogic Cloud API, победить провайдеров и развернуться Java-бэкенд в Docker на бесплатном хостинге: Двухдневный лог борьбы
Всем привет! Хочу поделиться свежим (и довольно. . .
|
Где деньги лежат
kumehtar 02.07.2026
Это - японская подводная лодка I-52 (тип C2, кодовое имя Momi) вышла из Японии в марте 1944 года с миссией в оккупированную немцами Францию (Лорьян). Это была одна из «Янаги»-миссий по обмену. . .
|
Krabik для WoW 3.3.5a, многоязычный
AmbA 02.07.2026
Допилил бота, думаю что окончательно. Изменения:
- добавлена многоязычность
- добавлено снятие скриншотов
- добавлено поддержание бафов хождения по воде (для жреца, дк и шамана)
- и так, по. . .
|