5 / 5 / 2
Регистрация: 23.12.2011
Сообщений: 280
|
||||||
1 | ||||||
Как записать два разных класса в массив?07.07.2015, 02:40. Показов 2029. Ответов 27
Метки нет Все метки)
(
допустим есть
мне на ум идёт только создать vector с указателями и брать указатель каждого элемента из контейнеров cont_a/cont_b и впиндюривать в vector c указателями. может есть более грамотный ход?
0
|
|
07.07.2015, 02:40 | |
Ответы с готовыми решениями:
27
Два разных массива записать последовательно в третий
Создать два класса с одинаковым именем в разных пространствах имен Массив разных объектов внутри класса |
18337 / 9522 / 2327
Регистрация: 30.01.2014
Сообщений: 16,630
|
|
07.07.2015, 02:53 | 2 |
Ko, как вариант: http://rextester.com/PKEXS98226
1
|
Модератор
![]() 8844 / 6624 / 902
Регистрация: 14.02.2011
Сообщений: 23,317
|
|
07.07.2015, 03:02 | 3 |
в общем случае никак, массив для однотипных данных, можно конечно повыеживатся
по моему,самое разумное решение Добавлено через 2 минуты а может сделать массив из двух указателей, один на cont_a; другой на cont_b; и работать как с двумерным
0
|
503 / 246 / 74
Регистрация: 31.10.2010
Сообщений: 742
|
|
07.07.2015, 04:11 | 4 |
Можно ещё создать структуру содержащую эти массивы.
0
|
77 / 77 / 30
Регистрация: 21.05.2015
Сообщений: 257
|
|
07.07.2015, 09:05 | 5 |
class_a и class_b унаследовать от какого-то class_base, создать std::vector<class_base> и складывать туда class_a и class_b, правда нужно продумать как потом разбираться где-какой чтоб правильно приводить к нужному типу.
или создать std::vector<void*> но тогда тоже надо потом как-то разбираться где что.
2
|
693 / 303 / 99
Регистрация: 04.07.2014
Сообщений: 843
|
||||||
07.07.2015, 09:13 | 6 | |||||
1
|
77 / 77 / 30
Регистрация: 21.05.2015
Сообщений: 257
|
|
07.07.2015, 10:51 | 8 |
1
|
Неэпический
|
||||||
07.07.2015, 11:19 | 9 | |||||
Бред, конечно, но
0
|
Mobile Software Engineer
![]() 5381 / 1585 / 956
Регистрация: 23.01.2011
Сообщений: 3,214
|
||||||
07.07.2015, 11:40 | 10 | |||||
1
|
693 / 303 / 99
Регистрация: 04.07.2014
Сообщений: 843
|
||||||
07.07.2015, 11:48 | 11 | |||||
dynamic_cast, но лучше умные указатели и dynamic_pointer_cast
Ev[G]eN, Только вот кто будет память освобождать?
0
|
Mobile Software Engineer
![]() 5381 / 1585 / 956
Регистрация: 23.01.2011
Сообщений: 3,214
|
|
07.07.2015, 11:49 | 12 |
AlexVRud, пускай ТС освобождает
![]() ![]()
0
|
![]() 8737 / 4315 / 960
Регистрация: 15.11.2014
Сообщений: 9,762
|
|||||||||||
07.07.2015, 11:58 | 13 | ||||||||||
1.
элементом массива не может быть тип с нулевым размером. по этой причине даже пустые структуры имеют отличный от нуля размер. 2. принципиальная схема: нужно организовать такой размер элемента массива, который гарантированно (с учетом выравнивания) вмещает в себя весь зоопарк типов, с которым ему предстоит работать. пример-иллюстрация:
и получить фундервафлю. в промышленном программировании, трюк с юнином запросто имитируется за счет локального хранилища данных, с new placement. в этом случае схема выглядит так: http://rextester.com/LOAU3706
вообще, вариантов приготовления можно, наверное, не мало придумать. Добавлено через 4 минуты
0
|
Неэпический
|
|
07.07.2015, 12:06 | 14 |
А в gcc встречается и такое: http://rextester.com/NASI82143
0
|
![]() 8737 / 4315 / 960
Регистрация: 15.11.2014
Сообщений: 9,762
|
|
07.07.2015, 12:17 | 15 |
0
|
Модератор
![]() 8844 / 6624 / 902
Регистрация: 14.02.2011
Сообщений: 23,317
|
|
07.07.2015, 15:07 | 17 |
например абстрактный класс
![]() ну а я при что? Добавлено через 1 минуту это ты размеры взял а теперь адреса возьми ![]()
0
|
Неэпический
|
|
07.07.2015, 15:14 | 18 |
Про адреса никто и не говорил. И, кстати, в силу размера 0, "сбивается" адресация в массиве (все элементы расположены по одному адресу): http://rextester.com/BCY43461
0
|
Модератор
![]() 8844 / 6624 / 902
Регистрация: 14.02.2011
Сообщений: 23,317
|
|
07.07.2015, 15:23 | 19 |
Тады ой и ах
![]() не могу апеллировать к стандарту, но во всех книгах,кои я читал, (времен 286 процессора ![]()
0
|
07.07.2015, 15:38 | 20 |
0
|
07.07.2015, 15:38 | |
Помогаю со студенческими работами здесь
20
Трехмерный массив, в который можно записать матрицы разных размеров
В одной форме два разных класса Записать две строки в два разных массива Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |