0 / 0 / 0
Регистрация: 22.05.2021
Сообщений: 16
|
|||||||||||
1 | |||||||||||
Присвоение производных классов в массив родительского класса19.12.2021, 11:11. Показов 645. Ответов 4
Метки нет (Все метки)
Здравствуйте, есть родительский класс Human и два производных. Когда хочу присвоить элементу массива Human например Student ( my_array[write_counter] = new Student(write_counter, 2, "aa", "dd", 4, 6, "gf")), выдаёт ошибку: [bcc32c Error] Unit3.cpp(101): no viable overloaded '='
Unit3.h(74): candidate function (the implicit move assignment operator) not viable: no known conversion from 'Student *' to 'Human' for 1st argument; dereference the argument with * Unit3.h(74): candidate function (the implicit copy assignment operator) not viable: no known conversion from 'Student *' to 'const Human' for 1st argument; dereference the argument with * Подскажите, пожалуйста, как быть? (Требуется всё хранить именно в массиве, не в векторе)
0
|
19.12.2021, 11:11 | |
Ответы с готовыми решениями:
4
Занести из файла объекты производных классов в массив объектов базового класса Передача объектов дочерних классов через массив объектов родительского класса в функцию Как сделать, чтобы производный класс наследовал все операторы от родительского класса и от родительского родительского Вызов одноименных функций классов наследников из родительского класса |
6107 / 3461 / 1406
Регистрация: 07.02.2019
Сообщений: 8,794
|
|
19.12.2021, 11:20 | 2 |
У вас "массив" хранит объекты типа
Human (что не корректно для вашей задачи), а вы пытаетесь туда засунуть объект типа Human* . Измените тип элементов массива.А еще, ваша иерархия классов не предоставляет никакой возможности определить динамический тип объектов. Задача, наверное, на полиморфизм.
0
|
Модератор
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,712
|
|||||||||||
19.12.2021, 11:23 | 3 | ||||||||||
Сообщение было отмечено kolosl как решение
Решение
а потом удалить массив указателей.
1
|
0 / 0 / 0
Регистрация: 22.05.2021
Сообщений: 16
|
|
19.12.2021, 11:57 [ТС] | 4 |
Спасибо, запустилось. А при такой реализации смогу ли я обращаться к методам класса Student?
0
|
Модератор
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,712
|
||||||
19.12.2021, 12:43 | 5 | |||||
Приведите указатель к типу Student и вызывайте
0
|
19.12.2021, 12:43 | |
19.12.2021, 12:43 | |
Помогаю со студенческими работами здесь
5
Массив производных классов Возможно ли некоторые публичные члены базового класса закрыть для производных классов? Массив объектов разных производных классов Доступ к методу родительского класса из метода свойства родительского класса Абстрактный класс, массив указателей на объекты производных классов Создать массив в базовом абстрактном классе, и его передать функциям производных классов Наследование, массив объектов дочернего класса внутри родительского Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |