|
0 / 0 / 0
Регистрация: 03.01.2020
Сообщений: 16
|
|
Создание динамического массива объектов разных классов24.05.2020, 22:31. Показов 6675. Ответов 7
Метки нет (Все метки)
У меня есть класс Car и 3 класса Buss, Truck, Passenger которые наследуют класс Car.
Как создать динамический массив объектов разных классов? Если нельзя, то как создать динамический массив объектов класса?
0
|
|
| 24.05.2020, 22:31 | |
|
Ответы с готовыми решениями:
7
Создание коллекции объектов разных классов Создание динамического массива объектов Создание динамического массива объектов «Поезд» и работа с ним |
|
319 / 216 / 114
Регистрация: 14.05.2020
Сообщений: 890
|
|||||||
| 24.05.2020, 22:45 | |||||||
0
|
|||||||
|
Нарушитель
10226 / 5657 / 1258
Регистрация: 12.03.2015
Сообщений: 26,193
|
||
| 24.05.2020, 23:09 | ||
|
0
|
||
|
0 / 0 / 0
Регистрация: 03.01.2020
Сообщений: 16
|
||||||
| 24.05.2020, 23:34 [ТС] | ||||||
|
Ошибки:
Кликните здесь для просмотра всего текста
c:\users\admin\desktop\институт\программ ирование\лабы 2020\лаба5\main.cpp(120): error C2371: c: переопределение; различные базовые типы
1> c:\users\admin\desktop\институт\программ ирование\лабы 2020\лаба5\main.cpp(119): см. объявление "c" 1>c:\users\admin\desktop\институт\програ ммирование\лабы 2020\лаба5\main.cpp(121): error C2371: c: переопределение; различные базовые типы 1> c:\users\admin\desktop\институт\программ ирование\лабы 2020\лаба5\main.cpp(119): см. объявление "c" 1>c:\users\admin\desktop\институт\програ ммирование\лабы 2020\лаба5\main.cpp(122): error C2040: c: "std::shared_ptr<Car []>" отличается по уровням косвенного обращения от "Car *" ========== Сборка: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
0
|
||||||
|
319 / 216 / 114
Регистрация: 14.05.2020
Сообщений: 890
|
|
| 24.05.2020, 23:55 | |
|
Daniil1254, ну как сказать? Указатель *c переименуйте например *a,*b,*c нельзя так как у Вас,
std::shared_ptr<Car[]>c(new Car[maxSize]); это умный указатель и у него тоже измените имя на любое другое (чтобы не повторялись в одной программе!!!!) И нужно #include<memory>
0
|
|
|
0 / 0 / 0
Регистрация: 03.01.2020
Сообщений: 16
|
||||||
| 25.05.2020, 00:15 [ТС] | ||||||
|
Все равно не понятно, что надо сделать. Вот у меня есть массив "с" с размером "maxSize" и я меняю у объекта тип:
c[0].SetType("Bus"); Как я понял умный указатель каким-то образом узнает какой класс присвоить c[0]
Кликните здесь для просмотра всего текста
1>c:\users\admin\desktop\институт\програ ммирование\лабы 2020\лаба5\main.cpp(173): error C2676: бинарный "[": "std::shared_ptr<Car []>" не определяет этот оператор или преобразование к типу приемлемо к встроенному оператору
1>c:\users\admin\desktop\институт\програ ммирование\лабы 2020\лаба5\main.cpp(173): error C2228: выражение слева от ".SetType" должно представлять класс, структуру или объединение 1>c:\users\admin\desktop\институт\програ ммирование\лабы 2020\лаба5\main.cpp(175): error C2676: бинарный "[": "std::shared_ptr<Car []>" не определяет этот оператор или преобразование к типу приемлемо к встроенному оператору 1>c:\users\admin\desktop\институт\програ ммирование\лабы 2020\лаба5\main.cpp(175): error C2228: выражение слева от ".SetMark" должно представлять класс, структуру или объединение 1>c:\users\admin\desktop\институт\програ ммирование\лабы 2020\лаба5\main.cpp(178): error C2676: бинарный "[": "std::shared_ptr<Car []>" не определяет этот оператор или преобразование к типу приемлемо к встроенному оператору 1>c:\users\admin\desktop\институт\програ ммирование\лабы 2020\лаба5\main.cpp(178): error C2228: выражение слева от ".SetPower" должно представлять класс, структуру или объединение 1>c:\users\admin\desktop\институт\програ ммирование\лабы 2020\лаба5\main.cpp(181): error C2676: бинарный "[": "std::shared_ptr<Car []>" не определяет этот оператор или преобразование к типу приемлемо к встроенному оператору 1>c:\users\admin\desktop\институт\програ ммирование\лабы 2020\лаба5\main.cpp(181): error C2228: выражение слева от ".SetTypeBody" должно представлять класс, структуру или объединение 1>c:\users\admin\desktop\институт\програ ммирование\лабы 2020\лаба5\main.cpp(184): error C2676: бинарный "[": "std::shared_ptr<Car []>" не определяет этот оператор или преобразование к типу приемлемо к встроенному оператору 1>c:\users\admin\desktop\институт\програ ммирование\лабы 2020\лаба5\main.cpp(184): error C2228: выражение слева от ".SetTransmission" должно представлять класс, структуру или объединение 1>c:\users\admin\desktop\институт\програ ммирование\лабы 2020\лаба5\main.cpp(187): error C2676: бинарный "[": "std::shared_ptr<Car []>" не определяет этот оператор или преобразование к типу приемлемо к встроенному оператору 1>c:\users\admin\desktop\институт\програ ммирование\лабы 2020\лаба5\main.cpp(187): error C2228: выражение слева от ".SetAge" должно представлять класс, структуру или объединение 1>c:\users\admin\desktop\институт\програ ммирование\лабы 2020\лаба5\main.cpp(190): error C2676: бинарный "[": "std::shared_ptr<Car []>" не определяет этот оператор или преобразование к типу приемлемо к встроенному оператору 1>c:\users\admin\desktop\институт\програ ммирование\лабы 2020\лаба5\main.cpp(190): error C2228: выражение слева от ".SetCountSpeed" должно представлять класс, структуру или объединение 1>c:\users\admin\desktop\институт\програ ммирование\лабы 2020\лаба5\main.cpp(197): error C2676: бинарный "[": "std::shared_ptr<Car []>" не определяет этот оператор или преобразование к типу приемлемо к встроенному оператору 1>c:\users\admin\desktop\институт\програ ммирование\лабы 2020\лаба5\main.cpp(197): error C2228: выражение слева от ".AddDriver" должно представлять класс, структуру или объединение 1>c:\users\admin\desktop\институт\програ ммирование\лабы 2020\лаба5\main.cpp(229): error C2676: бинарный "[": "std::shared_ptr<Car []>" не определяет этот оператор или преобразование к типу приемлемо к встроенному оператору 1>c:\users\admin\desktop\институт\програ ммирование\лабы 2020\лаба5\main.cpp(229): error C2228: выражение слева от ".ReturnMark" должно представлять класс, структуру или объединение 1>c:\users\admin\desktop\институт\програ ммирование\лабы 2020\лаба5\main.cpp(235): error C2676: бинарный "[": "std::shared_ptr<Car []>" не определяет этот оператор или преобразование к типу приемлемо к встроенному оператору 1>c:\users\admin\desktop\институт\програ ммирование\лабы 2020\лаба5\main.cpp(235): error C2228: выражение слева от ".ReturnMark" должно представлять класс, структуру или объединение 1>c:\users\admin\desktop\институт\програ ммирование\лабы 2020\лаба5\main.cpp(237): error C2664: "void DataВebugger(std::string,Car *,int)": невозможно преобразовать аргумент 2 из "std::shared_ptr<Car []>" в "Car *" 1> Для выполнения данного преобразования нет доступного оператора преобразования, определенного пользователем, или вызов оператора невозможен 1>c:\users\admin\desktop\институт\програ ммирование\лабы 2020\лаба5\main.cpp(262): error C2676: бинарный "[": "std::shared_ptr<Car []>" не определяет этот оператор или преобразование к типу приемлемо к встроенному оператору 1>c:\users\admin\desktop\институт\програ ммирование\лабы 2020\лаба5\main.cpp(262): error C2228: выражение слева от ".SetType" должно представлять класс, структуру или объединение 1>c:\users\admin\desktop\институт\програ ммирование\лабы 2020\лаба5\main.cpp(275): error C2676: бинарный "[": "std::shared_ptr<Car []>" не определяет этот оператор или преобразование к типу приемлемо к встроенному оператору 1>c:\users\admin\desktop\институт\програ ммирование\лабы 2020\лаба5\main.cpp(275): error C2228: выражение слева от ".SetMark" должно представлять класс, структуру или объединение 1>c:\users\admin\desktop\институт\програ ммирование\лабы 2020\лаба5\main.cpp(280): error C2676: бинарный "[": "std::shared_ptr<Car []>" не определяет этот оператор или преобразование к типу приемлемо к встроенному оператору 1>c:\users\admin\desktop\институт\програ ммирование\лабы 2020\лаба5\main.cpp(280): error C2228: выражение слева от ".SetPower" должно представлять класс, структуру или объединение 1>c:\users\admin\desktop\институт\програ ммирование\лабы 2020\лаба5\main.cpp(285): error C2676: бинарный "[": "std::shared_ptr<Car []>" не определяет этот оператор или преобразование к типу приемлемо к встроенному оператору 1>c:\users\admin\desktop\институт\програ ммирование\лабы 2020\лаба5\main.cpp(285): error C2228: выражение слева от ".SetTypeBody" должно представлять класс, структуру или объединение 1>c:\users\admin\desktop\институт\програ ммирование\лабы 2020\лаба5\main.cpp(290): error C2676: бинарный "[": "std::shared_ptr<Car []>" не определяет этот оператор или преобразование к типу приемлемо к встроенному оператору 1>c:\users\admin\desktop\институт\програ ммирование\лабы 2020\лаба5\main.cpp(290): error C2228: выражение слева от ".SetTransmission" должно представлять класс, структуру или объединение 1>c:\users\admin\desktop\институт\програ ммирование\лабы 2020\лаба5\main.cpp(295): error C2676: бинарный "[": "std::shared_ptr<Car []>" не определяет этот оператор или преобразование к типу приемлемо к встроенному оператору 1>c:\users\admin\desktop\институт\програ ммирование\лабы 2020\лаба5\main.cpp(295): error C2228: выражение слева от ".SetAge" должно представлять класс, структуру или объединение 1>c:\users\admin\desktop\институт\програ ммирование\лабы 2020\лаба5\main.cpp(300): error C2676: бинарный "[": "std::shared_ptr<Car []>" не определяет этот оператор или преобразование к типу приемлемо к встроенному оператору 1>c:\users\admin\desktop\институт\програ ммирование\лабы 2020\лаба5\main.cpp(300): error C2228: выражение слева от ".SetCountSpeed" должно представлять класс, структуру или объединение 1>c:\users\admin\desktop\институт\програ ммирование\лабы 2020\лаба5\main.cpp(314): error C2676: бинарный "[": "std::shared_ptr<Car []>" не определяет этот оператор или преобразование к типу приемлемо к встроенному оператору 1>c:\users\admin\desktop\институт\програ ммирование\лабы 2020\лаба5\main.cpp(314): error C2228: выражение слева от ".ReturnMark" должно представлять класс, структуру или объединение 1>c:\users\admin\desktop\институт\програ ммирование\лабы 2020\лаба5\main.cpp(329): error C2676: бинарный "[": "std::shared_ptr<Car []>" не определяет этот оператор или преобразование к типу приемлемо к встроенному оператору 1>c:\users\admin\desktop\институт\програ ммирование\лабы 2020\лаба5\main.cpp(329): error C2228: выражение слева от ".ReturnMark" должно представлять класс, структуру или объединение 1>c:\users\admin\desktop\институт\програ ммирование\лабы 2020\лаба5\main.cpp(331): error C2676: бинарный "[": "std::shared_ptr<Car []>" не определяет этот оператор или преобразование к типу приемлемо к встроенному оператору 1>c:\users\admin\desktop\институт\програ ммирование\лабы 2020\лаба5\main.cpp(331): error C2228: выражение слева от ".PrintCar" должно представлять класс, структуру или объединение 1>c:\users\admin\desktop\институт\програ ммирование\лабы 2020\лаба5\main.cpp(341): error C2676: бинарный "[": "std::shared_ptr<Car []>" не определяет этот оператор или преобразование к типу приемлемо к встроенному оператору 1>c:\users\admin\desktop\институт\програ ммирование\лабы 2020\лаба5\main.cpp(341): error C2228: выражение слева от ".ReturnMark" должно представлять класс, структуру или объединение 1>c:\users\admin\desktop\институт\програ ммирование\лабы 2020\лаба5\main.cpp(367): error C2676: бинарный "[": "std::shared_ptr<Car []>" не определяет этот оператор или преобразование к типу приемлемо к встроенному оператору 1>c:\users\admin\desktop\институт\програ ммирование\лабы 2020\лаба5\main.cpp(367): error C2228: выражение слева от ".ReturnMark" должно представлять класс, структуру или объединение 1>c:\users\admin\desktop\институт\програ ммирование\лабы 2020\лаба5\main.cpp(368): error C2676: бинарный "[": "std::shared_ptr<Car []>" не определяет этот оператор или преобразование к типу приемлемо к встроенному оператору 1>c:\users\admin\desktop\институт\програ ммирование\лабы 2020\лаба5\main.cpp(368): error C2228: выражение слева от ".ReturnPower" должно представлять класс, структуру или объединение 1>c:\users\admin\desktop\институт\програ ммирование\лабы 2020\лаба5\main.cpp(369): error C2676: бинарный "[": "std::shared_ptr<Car []>" не определяет этот оператор или преобразование к типу приемлемо к встроенному оператору 1>c:\users\admin\desktop\институт\програ ммирование\лабы 2020\лаба5\main.cpp(369): error C2228: выражение слева от ".ReturnTypeBody" должно представлять класс, структуру или объединение 1>c:\users\admin\desktop\институт\програ ммирование\лабы 2020\лаба5\main.cpp(370): error C2676: бинарный "[": "std::shared_ptr<Car []>" не определяет этот оператор или преобразование к типу приемлемо к встроенному оператору 1>c:\users\admin\desktop\институт\програ ммирование\лабы 2020\лаба5\main.cpp(370): error C2228: выражение слева от ".ReturnTransmission" должно представлять класс, структуру или объединение 1>c:\users\admin\desktop\институт\програ ммирование\лабы 2020\лаба5\main.cpp(371): error C2676: бинарный "[": "std::shared_ptr<Car []>" не определяет этот оператор или преобразование к типу приемлемо к встроенному оператору 1>c:\users\admin\desktop\институт\програ ммирование\лабы 2020\лаба5\main.cpp(371): error C2228: выражение слева от ".ReturnAge" должно представлять класс, структуру или объединение 1>c:\users\admin\desktop\институт\програ ммирование\лабы 2020\лаба5\main.cpp(372): error C2676: бинарный "[": "std::shared_ptr<Car []>" не определяет этот оператор или преобразование к типу приемлемо к встроенному оператору 1>c:\users\admin\desktop\институт\програ ммирование\лабы 2020\лаба5\main.cpp(372): error C2228: выражение слева от ".ReturnCountSpeed" должно представлять класс, структуру или объединение 1>c:\users\admin\desktop\институт\програ ммирование\лабы 2020\лаба5\main.cpp(373): error C2676: бинарный "[": "std::shared_ptr<Car []>" не определяет этот оператор или преобразование к типу приемлемо к встроенному оператору 1>c:\users\admin\desktop\институт\програ ммирование\лабы 2020\лаба5\main.cpp(373): error C2228: выражение слева от ".ReturnCount" должно представлять класс, структуру или объединение 1>c:\users\admin\desktop\институт\програ ммирование\лабы 2020\лаба5\main.cpp(375): error C2676: бинарный "[": "std::shared_ptr<Car []>" не определяет этот оператор или преобразование к типу приемлемо к встроенному оператору 1>c:\users\admin\desktop\институт\програ ммирование\лабы 2020\лаба5\main.cpp(375): error C2228: выражение слева от ".ReturnCount" должно представлять класс, структуру или объединение 1>c:\users\admin\desktop\институт\програ ммирование\лабы 2020\лаба5\main.cpp(377): error C2676: бинарный "[": "std::shared_ptr<Car []>" не определяет этот оператор или преобразование к типу приемлемо к встроенному оператору 1>c:\users\admin\desktop\институт\програ ммирование\лабы 2020\лаба5\main.cpp(377): error C2228: выражение слева от ".ReturnDriver" должно представлять класс, структуру или объединение 1>c:\users\admin\desktop\институт\програ ммирование\лабы 2020\лаба5\main.cpp(378): error C2676: бинарный "[": "std::shared_ptr<Car []>" не определяет этот оператор или преобразование к типу приемлемо к встроенному оператору 1>c:\users\admin\desktop\институт\програ ммирование\лабы 2020\лаба5\main.cpp(378): error C2228: выражение слева от ".ReturnDriver" должно представлять класс, структуру или объединение ========== Сборка: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
0
|
||||||
|
Комп_Оратор)
|
||||||
| 25.05.2020, 00:24 | ||||||
|
Daniil1254, тип контейнера - указатель на базовый класс. Рекомендую вектор. Потом i-тый элемент заселяется по принципу:
0
|
||||||
|
Нарушитель
10226 / 5657 / 1258
Регистрация: 12.03.2015
Сообщений: 26,193
|
||||||
| 25.05.2020, 01:44 | ||||||
Сообщение было отмечено Daniil1254 как решение
Решение
0
|
||||||
| 25.05.2020, 01:44 | |
|
Помогаю со студенческими работами здесь
8
Разработать иерархию классов, демонстрирующее работу с коллекцией объектов разных классов
Создание массива из разных объектов
Массив объектов разных производных классов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
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 .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|
Фото: Daniel Greenwood
kumehtar 13.11.2025
|