Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 10.11.2022
Сообщений: 2

Массив обьектов , класс которых наследуеться от абстрактного класса

10.11.2022, 13:55. Показов 604. Ответов 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
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.11.2022, 13:55
Ответы с готовыми решениями:

Реализовать класс "Динамический массив"
1. Согласно заданию реализовать класс абстрактного типа данных (далее АТД) как динамический массив. Для этого определение класса должно...

Поместить в динамически расширяемый массив объекты класса, производные от базового абстрактного класса
Помогите пожалуйста новичку! (мне). Я хочу создать динамически расширяющийся массив указателей на базовый абстрактный класс,...

Найти класс-наследник от абстрактного класса в массиве
Есть массив абстрактных классов &quot;GameObject&quot;, от него наследуется класс &quot;Plant&quot;, который тоже находится в массиве. Нужно пройтись по всему...

4
631 / 526 / 104
Регистрация: 05.08.2022
Сообщений: 2,810
10.11.2022, 14:04
и чё?
0
0 / 0 / 0
Регистрация: 10.11.2022
Сообщений: 2
10.11.2022, 14:08  [ТС]
Когда пробую создать Bird* birds = { new Eagle("eagle"),new Swallow("swallow"),new Penguin("penguin"),new Chicken("chicken") }; Ошибка в new Swallow("swallow"), too many initializer values
0
631 / 526 / 104
Регистрация: 05.08.2022
Сообщений: 2,810
10.11.2022, 14:20
Bird* birds[] = {
1
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
10.11.2022, 14:23
Лучший ответ Сообщение было отмечено Splinter13 как решение

Решение

Цитата Сообщение от Splinter13 Посмотреть сообщение
Когда пробую создать Bird* birds =
А вы выделили память для указателей ?
Вот вам массив указателей :
C++
1
Bird* birds[] = { new Eagle("eagle"),new Swallow("swallow"),new Penguin("penguin"),new Chicken("chicken") };
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.11.2022, 14:23
Помогаю со студенческими работами здесь

Определить на основе абстрактного класса производный класс
1. Определить произвольный базовый класс, содержащий конструктор, деструктор, данные (поля) и два метода класса, которые изменяют поля...

Доступ к полю абстрактного класса через класс-потомок
Здравствуйте, уважаемые форумчане! Пытаюсь решить такую задачу. Я объявил в абстрактном классе виртуальную функцию, чтобы реализовать ее в...

Операция new для потомков абстрактного класса, у которых есть интерфейс
Есть класс public abstract class ReestrElement есть классы-наследники public class ObjectIm : ReestrElement, IReestrElement...

Разработать производный от абстрактного класса Figure класс и класс, производный от производного
Разработать базовый абстрактный класс Figure с пустым виртуальным методом print для вывода в дальнейшем полной информации об объекте: ...

Массив объектов абстрактного класса
Есть абстрактный класс с двумя чисто виртуальными методами, от него наследуются два класса в которых эти методы переопределены и есть класс...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
[В процессе разработки] SDL3 для Web (WebAssembly): Сборка библиотек SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru