|
0 / 0 / 0
Регистрация: 16.01.2019
Сообщений: 42
|
||||||||||||||||
Ошибка обращения к удалённой функции?19.12.2019, 23:45. Показов 1805. Ответов 9
Метки нет (Все метки)
Всем привет, пишу класс кулькулятор с помощью стека. И выходит вот такая непонятная ошибка, пишет, что пытаюсь обратиться к удалённой функции. Скажите пожалуйста, что значит к удалённой функции? А то даже отладчик не успевает запускаться, как программа сразу завершается с ошибкой, т.е. я даже не могу посмотреть что там происходит по сути.
вот файл "tstack.h"
0
|
||||||||||||||||
| 19.12.2019, 23:45 | |
|
Ответы с готовыми решениями:
9
Передача объектов функции. Два обращения к функции деструктора Ошибка обращения к памяти Односвязные списки (функции обращения списка) |
|
0 / 0 / 0
Регистрация: 16.01.2019
Сообщений: 42
|
|
| 19.12.2019, 23:51 [ТС] | |
|
Croessmah, Я об этом думал, но не пойму как его делать. Тут же получается, что используется уже в нём конструктор стека. А что должен делать именно конструктор по умолчанию в калькуляторе?
0
|
|
|
863 / 513 / 215
Регистрация: 19.01.2019
Сообщений: 1,216
|
|
| 20.12.2019, 02:30 | |
|
Конструктора по умолчанию(без параметров) нет в классе TStack, а уже в TCalculator безуспешно пытаются создаться TStack объекты.
В TCalculator ничего из конструкторов нет, так что там работает дефолтный.
1
|
|
|
863 / 513 / 215
Регистрация: 19.01.2019
Сообщений: 1,216
|
||||||||||||||||
| 20.12.2019, 09:57 | ||||||||||||||||
|
Croessmah, ну да, но причина ошибки не в том, что нету конструктора в TCalculator, такого чтобы создать объекты TStack, а в том, как эти объекты объявлены. Если сделать так:
1
|
||||||||||||||||
|
0 / 0 / 0
Регистрация: 16.01.2019
Сообщений: 42
|
||||||
| 21.12.2019, 22:15 [ТС] | ||||||
|
nalbe666, Croessmah, спасибо за подсказки. Проблему решил добавлением в конструкторе стека инициализации, вот так:
0
|
||||||
|
Неэпический
|
||||
| 21.12.2019, 22:36 | ||||
TCalculator в данном случае определен как удаленный, является следствием отсутствия конструктора по-умолчанию в подобъектах типа TStack.Подробнее о случаях, когда конструктор объявляется как удаленный можно почитать в спецификации. Добавлено через 1 минуту В TCalculator без проблем неявно сгенерируется конструктор по-умолчанию.
1
|
||||
|
863 / 513 / 215
Регистрация: 19.01.2019
Сообщений: 1,216
|
|
| 21.12.2019, 23:00 | |
|
Croessmah, Почему вы эту проблему разбираете с конца? Да, компилятор зачехнулся на втором классе, т.к. не может конструктором по-умолчанию построить объекты внутри этого класса. И всё, что вы написали - верно. Только может стоит посмотреть, почему вообще так получилось? Например, если в первом классе отсутствует конструктор без параметров, так может это плохая идея, пытаться создать где-то объект этого класса через отсутствующий конструктор?
Имхо, то, что вы называете причиной - как раз следствие.
1
|
|
|
Неэпический
|
|
| 21.12.2019, 23:09 | |
|
nalbe666, Вы же сами указали способы решения проблемы без исправления первого класса. Странно было бы, если бы исправив следствие решилась проблема. Проблема-то как раз в TCalculator - это он использует TStack неправильно. Решения ровно два - либо исправить TStack под TCalculator, либо правильно использовать TStack в TCalculator. Источник ошибки именно в TCalculator.
![]() Предлагаю не разводить бесполезный спор, а заказать выпивки за Ва счет.
2
|
|
| 21.12.2019, 23:09 | |
|
Помогаю со студенческими работами здесь
10
Ошибка обращения к нулевому адресу 1С: Ошибка обращения к серверу 1С:предприятия Ошибка обращения к элементу массива Ошибка в уровнях косвенного обращения Ошибка обращения к нулевому адресу Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
|
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога
SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
|
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
|
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога
SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
|