|
0 / 0 / 0
Регистрация: 02.10.2020
Сообщений: 88
|
||||||||||||||||
Неправильная функция Add (c++)08.11.2021, 13:38. Показов 1505. Ответов 17
Здравствуйте! В приложении есть фото с конкретной ошибкой .
Проблема в функции Add Изначально она выглядела следующим образом:
Вся программа:
0
|
||||||||||||||||
| 08.11.2021, 13:38 | |
|
Ответы с готовыми решениями:
17
Неправильная функция Pascal |
|
0 / 0 / 0
Регистрация: 02.10.2020
Сообщений: 88
|
|
| 08.11.2021, 13:48 [ТС] | |
|
Проблема с абстрактным классом. Это насколько я поняла. У меня virtual Rastenie* GetCopy() = 0;
не переопределено. и от этого последствия. да?
0
|
|
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
||
| 08.11.2021, 13:48 | ||
|
Возвращается указатель/ресурс базового абстрактного класса. После вызова GetCopy объектом по указателю владеет и распоряжается вызывающий код. Ни про какое создание объекта абстрактного класса (Rastenie) быть не может. Так как это запрещено языком (и не имеет смысла).
1
|
||
|
Любитель чаепитий
|
||
| 08.11.2021, 13:50 | ||
|
дело в том, что Rastenie - абстрактный класс.а экземпляр абстрактного класса нельзя создать. а даже если бы было можно, то у класса Rastenie нет конструктора, принимающего Rastenie*.
0
|
||
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
||||||
| 08.11.2021, 13:54 | ||||||
|
Есть примечание, поле :
Rastenie** rastenie; создается и обрабатывается как одномерный массив указателей. А удаляется в деструкторе как двумерный. Это ошибка.
1
|
||||||
|
0 / 0 / 0
Регистрация: 02.10.2020
Сообщений: 88
|
|
| 08.11.2021, 13:54 [ТС] | |
|
Вот что по поводу 1го варианта мне написали : "Вы указатель присваиваете указателю, а надо сделать копию данного объекта при этом выделяя под нее место в памяти."
0
|
|
|
Любитель чаепитий
|
||
| 08.11.2021, 14:00 | ||
|
место выделяется, просто внутри GetCopy. это логично, т.к. по-другому это попросту не сделать.
1
|
||
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
||
| 08.11.2021, 14:01 | ||
|
Наверное просто вопрос "на засыпку" ![]() Добавлено через 31 секунду GbaLog-,
1
|
||
|
0 / 0 / 0
Регистрация: 02.10.2020
Сообщений: 88
|
||||||||||||||||
| 09.11.2021, 10:12 [ТС] | ||||||||||||||||
|
Вся программа(новый вариант)
0
|
||||||||||||||||
|
Любитель чаепитий
|
|||||||
| 09.11.2021, 10:48 | |||||||
|
подобное можно провернуть, конечно, вот так:
а во-вторых, это криво настолько, насколько возможно, потому что в итоге new Trava приведётся к Rastenie* и всё будет так же, как и без этого new Trava.бред какой-то получается, в общем.
1
|
|||||||
|
0 / 0 / 0
Регистрация: 02.10.2020
Сообщений: 88
|
|
| 09.11.2021, 10:49 [ТС] | |
|
преподаватель просит
0
|
|
|
0 / 0 / 0
Регистрация: 02.10.2020
Сообщений: 88
|
||||||
| 09.11.2021, 10:53 [ТС] | ||||||
|
ВОТ И Я О ТОМ ЖЕ.
0
|
||||||
|
Любитель чаепитий
|
|
| 09.11.2021, 10:59 | |
|
дело даже не в красивости. а в том, что то, что хочет ваш преподаватель, попросту работать не будет.
GetCopy возвращает Rastenie, а значит вся информация о классе Derevo или Trava теряется.
1
|
|
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
|
| 09.11.2021, 12:04 | |
|
В изначальном коде, объекты в полиморфном состоянии по указателю на базовый класс Rastenie,
при виртуальном методе взять копию, эти объекты "знают" свой тип и поэтому попросить у них копию его же - самый естественный вариант. ![]() С использованием только базовой функции полиморфизма (хранить всех потомков по указателю на базового класса), придется пытаться приводить базовый указатель вручную, при том что код который это будет делать, может не знать всех типов потомков. Возможно этот деревянный подход от Вас и хотят. julity, Покажите полный текст оригинального задания, это может сильно помочь. Может от Вас требовалось малое, а вы его перешагнули и сделали почти как надо. (а так по плану низя , надо по всем граблям пройтись).
0
|
|
|
0 / 0 / 0
Регистрация: 02.10.2020
Сообщений: 88
|
|
| 11.11.2021, 18:10 [ТС] | |
|
Лабораторную работу сдала другому преподавателю. Спасибо за помощь!!!!!!
0
|
|
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
|
| 11.11.2021, 20:37 | |
|
0
|
|
| 11.11.2021, 20:37 | |
|
Помогаю со студенческими работами здесь
18
Неправильная функция создания *журнала* Замена методам dataTable.Rows.Add() и .Columns.Add() сформировать сетку 8*16384
Почему git add . и git add * это плохо? И как тогда быть? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Оттенки серого
Argus19 18.03.2026
Оттенки серого
Нашёл в интернете 3 прекрасных модуля:
Модуль класса открытия диалога открытия/ сохранения файла на Win32 API;
Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
|
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-rectangles-sdl3-c. zip
finish-rectangles-sdl3-cpp. zip
|
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие.
Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
|
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ВВЕДЕНИЕ
Выполняя задание на управление насосной группой заполнения резервуара,. . .
|
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|