|
51 / 51 / 8
Регистрация: 31.10.2012
Сообщений: 481
|
|||||||||||
Работа с абстрактным классом07.01.2016, 21:42. Показов 1924. Ответов 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
Создать иерархию наследования с абстрактным базовым классом Работа с классом работа с классом Работа с классом работа с классом Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут
Суть:
- Группа наркоманов из 10 человек.
- Только один инфицирован ВИЧ.
- Колются одной иглой.
- Колются раз в день.
- Колются последовательно через. . .
|
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
|
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
|
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . .
а удачный момент так и не приходит.
|
|
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица.
Задача: зафиксировать три левых колонки в отчете.
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
/ / . . .
|
Настройки VS Code
Loafer 13.04.2026
{
"cmake. configureOnOpen": false,
"diffEditor. ignoreTrimWhitespace": true,
"editor. guides. bracketPairs": "active",
"extensions. ignoreRecommendations": true,
. . .
|
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2.
Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива.
Было так:. . .
|
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: реализовать контроль корректности заполнения дат назначения. . .
|