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

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

10.11.2022, 13:55. Показов 491. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
#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
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.11.2022, 13:55
Ответы с готовыми решениями:

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

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

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

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

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 как решение

Решение

Цитата Сообщение от Splinter13 Посмотреть сообщение
Когда пробую создать Bird* birds =
А вы выделили память для указателей ?
Вот вам массив указателей :
C++
1
Bird* birds[] = { new Eagle("eagle"),new Swallow("swallow"),new Penguin("penguin"),new Chicken("chicken") };
1
10.11.2022, 14:23
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.11.2022, 14:23
Помогаю со студенческими работами здесь

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

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

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

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

Динамический массив абстрактного класса
Никак не могу понять, почему память не освобождается. Подскажите в чем ошибка пожалуйста. #ifndef...

Как реализовать массив объектов Абстрактного класса
Доброго времени суток! Есть такое задание: Написать программу на языках С# в которой идёт со...

Написать игру. Опишите классы (Мечник), (Лучник), (Маг), каждый из которых является экземпляром базового абстрактного класса
Добрый день, привет всем! Помогите пожалуйста решить задание: Опишите классы &quot;Swordsman&quot;...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru