|
Я не улыбаюсь.
-8 / 1 / 0
Регистрация: 10.03.2020
Сообщений: 102
|
||||||
Массив указателей на объекты наследуемых классов11.05.2020, 21:26. Показов 2581. Ответов 29
Добрый день!
Класс Patircle по задаче должен быть абстрактным, у него два наследника. В задаче сказано "В программе должен быть определён основной класс система, содержащий массив указателей на объекты-частицы". Пожалуйста, посмотрите ниже по тексту, направляю вам часть программы. Вопросы: 1. Проверьте пожалуйста правильно ли я написал класс System? 2. Если я буду использовать std::vector<Particle*> particles; как #include <vector> облегчит мне жизнь? Никогда им не пользовался. 3. Как реализовывается доступ к объектам-частицам(наследуемых классов) через указатель(Particle*) на базовый(абстрактный класс)? Буду рад почитать литературу на эту тему. Может быть вы еще что то заметите.
0
|
||||||
| 11.05.2020, 21:26 | |
|
Ответы с готовыми решениями:
29
Виртуальные функции (создать массив указателей на объекты трех классов) |
|
Комп_Оратор)
|
||||||||||
| 11.05.2020, 22:53 | ||||||||||
https://ru.cppreference.com/w/cpp/container/vector Там правда написаны перлы вида:
std::vector.Обратите внимание на итераторы. Если описание не прочтётся, - значит или вы или ваш препод что-то пропустили.
1
|
||||||||||
|
Я не улыбаюсь.
-8 / 1 / 0
Регистрация: 10.03.2020
Сообщений: 102
|
|||
| 11.05.2020, 23:50 [ТС] | |||
|
0
|
|||
|
Комп_Оратор)
|
||||||||
| 11.05.2020, 23:57 | ||||||||
![]()
1
|
||||||||
|
Я не улыбаюсь.
-8 / 1 / 0
Регистрация: 10.03.2020
Сообщений: 102
|
|||||||
| 12.05.2020, 13:34 [ТС] | |||||||
0
|
|||||||
|
Комп_Оратор)
|
||||
| 12.05.2020, 13:42 | ||||
|
Glbvnts, это 1 минута создать такой блок и прочесть что там получилось. Вы не уважаете своё время? Но с небес решение не упадёт ведь. Соберитесь и работайте. Вопросы станут более осмысленными. Во всяком разе есть шанс.
1
|
||||
|
Я не улыбаюсь.
-8 / 1 / 0
Регистрация: 10.03.2020
Сообщений: 102
|
||||||
| 12.05.2020, 18:44 [ТС] | ||||||
|
[/quote]IGPIGP, посмотрите пожалуйста, сейчас верно?
0
|
||||||
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
|||||||||||||||||||
| 12.05.2020, 18:57 | |||||||||||||||||||
|
IGPIGP, посмотрите пожалуйста, сейчас верно?[/quote]
Добавлено через 1 минуту Добавлено через 1 минуту Добавлено через 1 минуту
1
|
|||||||||||||||||||
|
Комп_Оратор)
|
||
| 12.05.2020, 18:59 | ||
|
Что касается массива. Обычно делают vector<unique_ptr<T>>. Но если хотите делать руками - делайте массив указателей. Можете сделать статический - типа Particle * my_polymolphic_ptrs[N], где N статическая константа. И счетчик последнего заполненного индекса (нулём инициализированный). Тогда добавляя/удаляя указатель будете играть счетчиком вперед/назад и шеренгой бойцов - куда вставлять или вытягивать будете. Это к тому, что механизм поиска вероятно придётся предоставить тоже. Если хотите выделят память динамически то это почти тоже самое + корзинка какашек с управлением памятью самого массива. Помните. Память под сами объекты всё равно придётся выделять и освобождать. Это потому, что по одним и тем же указателям у вас будут разные звери. Даже по размеру, в общем случае. Glbvnts, ваша задача сочетает набор подзадач совершенно разного уровня. Если вы должны управлять коллекцией полиморфных указателей, то создавать/удалять массивы и объекты должны не задумываясь. Вряд ли кто захочет для вас это сделать.
1
|
||
|
Я не улыбаюсь.
-8 / 1 / 0
Регистрация: 10.03.2020
Сообщений: 102
|
||||
| 12.05.2020, 19:01 [ТС] | ||||
|
Спасибо!
0
|
||||
|
Я не улыбаюсь.
-8 / 1 / 0
Регистрация: 10.03.2020
Сообщений: 102
|
||||
| 12.05.2020, 19:20 [ТС] | ||||
|
Именно этого от меня и хотят. IGPIGP, oleg-m1973, подскажите пожалуйста, что за тема и какую литературу почитать? Основная книжка, по которой изучаю это "Введение в язык C++" А.В.Столяров. В закрепе темы скрин раздела Наследование и полиморфизм. Я сейчас на 5.7 Виртуальность в конструкторах и деструкторах. Возможно я еще не прочел нужный параграф.
0
|
||||
|
Комп_Оратор)
|
|||||||
| 12.05.2020, 22:37 | |||||||
0
|
|||||||
|
Я не улыбаюсь.
-8 / 1 / 0
Регистрация: 10.03.2020
Сообщений: 102
|
|
| 13.05.2020, 02:37 [ТС] | |
|
IGPIGP, То есть, вряд ли оно поможет, Glbvnts.
Спасибо, что верите в меня!
0
|
|
|
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
|
||
| 13.05.2020, 02:45 | ||
|
2
|
||
|
Я не улыбаюсь.
-8 / 1 / 0
Регистрация: 10.03.2020
Сообщений: 102
|
|
| 13.05.2020, 02:48 [ТС] | |
|
DrOffset, то есть для тривиальных(не пользовательских) типов данных, в том числе для типов данных вида TYPE* будет вызван конструктор по умолчанию, и каждый указатель будет указывать на NULL?
0
|
|
|
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
|
||||
| 13.05.2020, 03:30 | ||||
|
Добавлено через 2 минуты Добавлено через 5 минут Используйте вектор лучше. Хотя бы потому, что выше вы показали неготовность корректно управлять памятью вручную.
2
|
||||
|
Я не улыбаюсь.
-8 / 1 / 0
Регистрация: 10.03.2020
Сообщений: 102
|
|||||||||||||||||
| 21.05.2020, 23:15 [ТС] | |||||||||||||||||
|
"Написал" свой, но немного изменив(без шаблона). Много вопросов касательно "range-based for loop".
prtcl имеет тип std::unique_ptr<Particle>&, что это такое? Ссылка на умный указатель, который указывает на класс Particle?
0
|
|||||||||||||||||
|
Комп_Оратор)
|
||||||||||||||
| 21.05.2020, 23:30 | ||||||||||||||
|
Glbvnts, вектор
А на элементе итерации, итераторе например - вы можете обратиться к указателю для обращения к частице. Это не будет выглядеть как майская роза, но вполне дёшево и практично:
1
|
||||||||||||||
|
Я не улыбаюсь.
-8 / 1 / 0
Регистрация: 10.03.2020
Сообщений: 102
|
|||||||||||||||||||
| 22.05.2020, 01:20 [ТС] | |||||||||||||||||||
Здесь память под объкты частицы выделена не будет владеть частицой(nullptr скорее всего). На чатицу у нас будет ссылка, как "ссылка r-value". Вы это имеете в виду? на каждой итерации elem будет присвоено значение из контейнера(не знаю можно ли называть так объекты класса initialize_list)? Мне все еще не ясно, что значит & перед elem? Добавлено через 7 минут это значит, что тип который будет выведен вместо auto компилятором, который в свою очередь узнает тип по типу инициализатора будет ссылочным, как это понимать умный указатель ссылочного типа? Добавлено через 3 минуты
error: use of deleted function ‘std::unique_ptr<_Tp, _Dp>::unique_ptr(const std::unique_ptr<_Tp, _Dp>&) [with _Tp = Particle; _Dp = std::default_delete<Particle>]’ for (auto elem : alist) {
0
|
|||||||||||||||||||
| 22.05.2020, 01:20 | |
|
Помогаю со студенческими работами здесь
20
Из трех наследуемых классов получить массив родителя Массив указателей на объекты Динамический массив указателей на объекты Массив указателей на объекты подклассов Динамический массив указателей на объекты класса Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|