0 / 0 / 0
Регистрация: 10.11.2022
Сообщений: 2
|
|
1 | |
Массив обьектов , класс которых наследуеться от абстрактного класса10.11.2022, 13:55. Показов 491. Ответов 4
Метки нет (Все метки)
#include <iostream>
#include <string> using namespace std; class Bird { public: virtual string GetName()=0; virtual bool compareTo(Bird& bird) = 0; virtual ~Bird() = default; }; class Eagle : public Bird { string name; public: Eagle(string name ) :name(name) {}; ~Eagle()override = default; string GetName() override { return name; } bool compareTo(Bird& bird) override { return name[0] > bird.GetName()[0]; } }; class Swallow : public Bird { string name; public: Swallow(string name) :name(name) {}; ~Swallow()override = default; string GetName() override { return name; } bool compareTo(Bird& bird) override { return name[0] > bird.GetName()[0]; } }; class Penguin : public Bird { string name; public: Penguin(string name) :name(name) {}; ~Penguin()override = default; string GetName() override { return name; } bool compareTo(Bird& bird) override { return name[0] > bird.GetName()[0]; } }; class Chicken : public Bird { string name; public: Chicken(string name) :name(name) {}; ~Chicken()override = default; string GetName() override { return name; } bool compareTo(Bird& bird) override { return name[0] > bird.GetName()[0]; } }; class Eagle : public Bird { string name; public: Eagle(string name) :name(name) {}; string GetName() override { return name; } bool compareTo(Bird& bird) override { return name[0] > bird.GetName()[0]; } }; int main() { Bird* birds = { new Eagle("eagle"),new Swallow("swallow"),new Penguin("penguin"),new Chicken("chicken") }; for (int i = 0; i < 4; i++) { cout << birds[i].GetName() << endl; } return 0; }
0
|
10.11.2022, 13:55 | |
Ответы с готовыми решениями:
4
Согласно заданию реализовать класс абстрактного типа данных (далее АТД) как динамический массив. Для этого определение класса должно иметь следующие Поместить в динамически расширяемый массив объекты класса, производные от базового абстрактного класса Найти класс-наследник от абстрактного класса в массиве Определить на основе абстрактного класса производный класс |
573 / 475 / 99
Регистрация: 05.08.2022
Сообщений: 2,598
|
|
10.11.2022, 14:04 | 2 |
и чё?
0
|
0 / 0 / 0
Регистрация: 10.11.2022
Сообщений: 2
|
|
10.11.2022, 14:08 [ТС] | 3 |
Когда пробую создать Bird* birds = { new Eagle("eagle"),new Swallow("swallow"),new Penguin("penguin"),new Chicken("chicken") }; Ошибка в new Swallow("swallow"), too many initializer values
0
|
573 / 475 / 99
Регистрация: 05.08.2022
Сообщений: 2,598
|
|
10.11.2022, 14:20 | 4 |
Bird* birds[] = {
1
|
3697 / 2647 / 761
Регистрация: 29.06.2020
Сообщений: 9,800
|
||||||
10.11.2022, 14:23 | 5 | |||||
Сообщение было отмечено Splinter13 как решение
Решение
А вы выделили память для указателей ?
Вот вам массив указателей :
1
|
10.11.2022, 14:23 | |
10.11.2022, 14:23 | |
Помогаю со студенческими работами здесь
5
Доступ к полю абстрактного класса через класс-потомок Операция new для потомков абстрактного класса, у которых есть интерфейс Разработать производный от абстрактного класса Figure класс и класс, производный от производного Массив объектов абстрактного класса Динамический массив абстрактного класса Как реализовать массив объектов Абстрактного класса Написать игру. Опишите классы (Мечник), (Лучник), (Маг), каждый из которых является экземпляром базового абстрактного класса Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |