|
261 / 209 / 99
Регистрация: 13.12.2015
Сообщений: 1,098
|
|||||||||||
Static члены класса05.01.2016, 08:43. Показов 9574. Ответов 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 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
|
Запись в регистр сведений независимо от заполненности табличной части
Maks 25.08.2026
Реализация из решения ниже выполнена на нетиповом документе с несколькими табличными частями, разработанного в КА2.
Задача:
Обеспечить запись документа в регистр сведений независимо от. . .
|
Ноутбук Альфария
kumehtar 24.08.2026
Встретился тут в сети ноутбук Альфария, примарха Альфа-Легиона. Хотя возможно, это ноутбук Омегона, разумеется.
Ну как вам?
|
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания
источниках данных и элементов формы(текстовые поля и метки), опирается все
это на технологию событий и мета. . .
|
|
Цена ошибки
DevAlt 23.08.2026
Человек я беспокойный и потому заинтересовался OCaml,
в чате форсили функторы модулей как суперфичу.
Пытаясь отдуплить концепт, наткнулся на тутор с простым примером.
А главный принцип обучения от. . .
|
Сегодня суббота, 22.08.2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины.
zorxor 22.08.2026
Сегодня суббота, 22. 08. 2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины. Кто Я, откуда Я пришел и куда Я иду? Эти вопросы не оставляют меня ни на секунду. Жизнь на планете Земля. . .
|
Жизня: рисунок укладки багажа, сделанный клодом
anaschu 21.08.2026
Сделал 15 снимков, он по снимкам сделал схему.
|
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства.
Жизнь действительно предъявляет каждому. . .
|