|
51 / 51 / 8
Регистрация: 31.10.2012
Сообщений: 481
|
|||||||||||
Работа с абстрактным классом07.01.2016, 21:42. Показов 1816. Ответов 34
Метки нет (Все метки)
Доброго времени суток!
Имеется небольшой класс:
Если же исключить ООП и писать реализацию напрямую в функции main, то проблемы не наблюдается. Как нужно исправить программу, чтобы не получать сегфолт?
0
|
|||||||||||
| 07.01.2016, 21:42 | |
|
Ответы с готовыми решениями:
34
Полиморфизм с абстрактным классом Непонятки с абстрактным классом
|
|
1675 / 1047 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
|
|
| 07.01.2016, 22:34 | |
|
Ну изначально-то в device нолик. Неудивительно, что при обращении к нему сегфолты возникают. А надо откуда-то взять указатель на полноценный объект. Как-то он должен в Irrlicht создаваться.
0
|
|
|
51 / 51 / 8
Регистрация: 31.10.2012
Сообщений: 481
|
||||||
| 07.01.2016, 22:57 [ТС] | ||||||
|
Nick Alte, нолик -- ясное дело. Если, например, без классов я напишу так:
0
|
||||||
|
1675 / 1047 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
|
|||||||
| 08.01.2016, 07:27 | |||||||
|
Гугление официального сайта Irrlicht, переход в туториалы, из них первый - Hello World, общее время меньше минуты. Видим следующее:
1
|
|||||||
|
51 / 51 / 8
Регистрация: 31.10.2012
Сообщений: 481
|
|
| 08.01.2016, 10:27 [ТС] | |
|
Nick Alte, я уроки уже по десять раз прокурил, в очередной нового ничего не открою.
Просто по своей невнимательности не учел, что эта строка должна идти первой. Вопрос закрыт.
0
|
|
|
|
||
| 08.01.2016, 11:13 | ||
|
Не по теме: Хотя на днях как раз на форуме было высказано мнение, что это UB, но не уверен. Думаю тут не С++ стандарт курить надо, а что нибудь типа x86 abi, лень разбираться. Опираясь на мои знания это вроде не UB на x86.
0
|
||
|
1675 / 1047 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
|
||
| 08.01.2016, 13:28 | ||
|
Вот только конкретно этот метод вполне себе обращается и вполне ожидаемо сегфолтит.
0
|
||
| 08.01.2016, 13:37 | ||
|
Не по теме:
ptr-> идентична (*ptr).. Нужно для себя решить кто из них сильнее :) На уровне языка может и UB, но мне кажется т.к. thiscall тут перетягивает одеяло на себя, то можно считать что все вполне definded. Хотя если забыть об архитектуре и говорить только терминами языка, то да, может UB.
0
|
||
|
50 / 49 / 10
Регистрация: 24.01.2010
Сообщений: 225
|
|
| 08.01.2016, 19:37 | |
|
опс...
не досмотр
0
|
|
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|
| 08.01.2016, 23:38 | |
|
0
|
|
|
|
|||
| 09.01.2016, 07:31 | |||
|
Добавлено через 8 минут Не по теме: Полез гуглить что-нибудь на эту тему, интересную вещь нашел
0
|
|||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|||||||||||||||||||||||
| 09.01.2016, 10:11 | |||||||||||||||||||||||
|
Не по теме:
разработчики платформы запросто используют не корректные с точки зрения стандарта ходы.
здесь же, как мы видим, квалификатор volatile запрещает компилятору оптимизировать конструкцию. однако, от этого UB не перестает быть UB. и не стоит им уподобляться. эти ребята не просто знают тонкости своего компилятора, но и умеют заставить его по особенному собирать код своих библиотек. к тому же, все эти хаки прозрачны для пользователей. выйдет новая версия, и в новой версии будут другие хаки. а старые запросто перестанут работать. все это прозрачно для тех пользователей, у которых хватило ума не эксплуатировать хаки в собственном коде напрямую. что бы не получилось, как с бустовским typeof. вот где площадка для экспериментов. там используют любые платформо-специфичные хаки. студийная реализация завязалась на баге в Visual Studio 7.1 (автоматический id времени компиляции) после исправления которого, лососнула тунца вплоть до выхода delctype в том, что касается MFC - есть ряд драконовских ограничений. например, связанные с множественным наследованием:
или вот код:
однако, технически, это - сумасшедший каст теплого к мягкому. работая с MFC, нужно быть оч аккуратным, и внимательно читать доки. Добавлено через 12 минут какой путь пришлось пройти аргументам, что бы оказаться на стеке функции. единственная компетенция соглашения о вызове: как упакованы аргументы по итогу. и кстати, компиляторы при оптимизациях имеют полное право покласть на это соглашение с большим прибором. компиляторы закладываются, что код не содержит UB, а значит всякие засранцы не будут писать такой код: (последний пример) Static члены класса а значит можно сэкономить, пробросив аргументы как нибудь через регистры, а не стек. "честный" thiscall будет, только если там элипсис, или volatile, или какие нибудь волшебные слова компилятора: Как гарантировать передачу единственного параметра через стек?
0
|
|||||||||||||||||||||||
|
|
|||||||
| 09.01.2016, 14:43 | |||||||
|
Добавлено через 4 минуты касательно
0
|
|||||||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|||
| 09.01.2016, 17:22 | |||
|
Добавлено через 51 секунду
0
|
|||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||||||||
| 09.01.2016, 17:35 | ||||||||
|
я малость поспешил. вот правильная иллюстрация: http://rextester.com/OSFPG49584
потому что указатель p совпадает с началом подобъекта trololo. в то время, как подобъект msvc отстоит от начала объекта на некоторое смещение, определяемое данными-членами и выравниванием. когда нужно запустить метод is_valid, то обращение идет к подобъекту msvc, компилятор автоматически выполняет корректировку смещения. поэтому нулевое p не совпадает с this подобъекта msvc.
0
|
||||||||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|
| 09.01.2016, 19:10 | |
|
0
|
|
| 10.01.2016, 17:13 | |
|
Не по теме: hoggy, не хочу приводить рабочий пример и ассемблерный выхлоп потому что:
0
|
|
| 10.01.2016, 17:13 | |
|
Помогаю со студенческими работами здесь
20
Создать иерархию наследования с абстрактным базовым классом Работа с классом работа с классом Работа с классом работа с классом Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|
|
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ВВЕДЕНИЕ
Введу сокращения:
аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
|
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi
ветка по-частям.
коммит Create переделка под биомассу. txt
вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
|
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ *
Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во
всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
|