Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
10 / 10 / 3
Регистрация: 18.07.2010
Сообщений: 180

stl и полиморфизм

21.01.2012, 15:05. Показов 2820. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток, возник такой вопрос не знаю как реализовать,
имеется 4 класса.
Базовый Object он имеет поля x и y от него наследуется класс Enemy он имеет метод Draw -прорисовка, от этого класса наследуется ещё 2 класса Bomber и destroyer они имеют методы Update которые обновляют координаты объекта а также имеют булеву переменную alive которая проверяет жив ли объект,
в main я использую такой код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
CDestroyer destr[3];
    destr[0].Init(300,200,0,0,32,32,"images\\Enemies\\destrojer.bmp",1,2);
    destr[1].Init(370,200,0,0,32,32,"images\\Enemies\\destrojer.bmp",1,2);
    CBomber bomber;
    bomber.Init(400,300,0,0,32,32,"images\\Enemies\\bomber.bmp",1,2);
    CEnemy **enemy;
    enemy=new CEnemy*[3];
    enemy[0]=&destr[0];
    enemy[1]=&destr[1];
    enemy[2]=&bomber;
while(true)
{
               enemy[0]->Update(player.lightlaser.GetX(),player.lightlaser.GetY());
           enemy[1]->Update(player.lightlaser.GetX(),player.lightlaser.GetY());
           enemy[2]->Update(player.lightlaser.GetX(),player.lightlaser.GetY());
                enemy[0]->Draw(buffer);
        enemy[1]->Draw(buffer);
        enemy[2]->Draw(buffer);
 
}
Как это реализовать с помощью очереди(думаю она здесь подойдёт как нельзя лучше)
а также если у объекта alive=false, то чтоб этот объект удалился.
STL юзал буквально несколько раз, поэтому незнаю как это можно провернуть.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.01.2012, 15:05
Ответы с готовыми решениями:

STL и полиморфизм
Доброго времени суток! Исходная информация: класс а-базовый,b-производный у этих ребят определён виртуальный метод(для класса...

Полиморфизм
задача - Эта задача о построении функциональных цепочек. Функциональные цепочки - это функции, которые содержат упорядоченный набор...

Полиморфизм
дана программа class X { int i; public X() { i = 5; this.print(); }

22
10 / 10 / 3
Регистрация: 18.07.2010
Сообщений: 180
21.01.2012, 18:55  [ТС]
Студворк — интернет-сервис помощи студентам
А как это полечить?
0
DU
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
21.01.2012, 18:59
например складывать все сразу в вектор без всяких промежуточных массивов.

C++
1
2
3
4
5
6
7
8
9
10
11
std::vector <shared_ptr<CEnemy>> lst;
shared_ptr<CDestroyer> destroyer;
destroyer.reset(new CDestroyer());
destroyer->Init(...);
lst.push_back(destroyer); // тут возможно понадобится явное преобразование в shared_ptr<CEnemy>
 
destroyer.reset(new CDestroyer());
destroyer->Init(...);
lst.push_back(destroyer);
 
//тут то же самое для бомбера
1
10 / 10 / 3
Регистрация: 18.07.2010
Сообщений: 180
21.01.2012, 19:22  [ТС]
Спасибо работает, а как теперь удалить? при alive == false
Попробовал тем методом что вы писали, не получается...

Добавлено через 11 минут
Всем спасибо за ответы, с удалением разобрался,
надо было так
C++
1
2
3
4
5
if((*iter)->alive==false)
        {
            lst.erase(iter);
            break;
        }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.01.2012, 19:22

Полиморфизм
Здравствуйте. Изучал ООП как в C#, так и в Python, но нигде не могу понять, что такое полиморфизм. Знаю, что инкопсуляция - это...

Полиморфизм
Прочитал в Википедии что такое полиморфизм: Кратко смысл полиморфизма можно выразить фразой: «Один интерфейс, множество реализаций». ...

Полиморфизм
Значит вот выдумал только что такой вот пример дабы обрести понимание полиморфизма. Скажите пожалуйста, перегрузка методов, как в...

Полиморфизм
Здравствуйте, я не могу понять как сделать полиморфизм 2-х методов в C#. Что это такое я понимаю, а вот реазиловать не выходит. using...

Полиморфизм
Доброго времени суток. Вроде все просто, но при использовании возникла проблема. class Magnitude a where size :: a -&gt; Double ...


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

Или воспользуйтесь поиском по форуму:
23
Ответ Создать тему
Новые блоги и статьи
Baragoz - DPS/HPS бот для WoW 3.3.5a, многоязычный
AmbA 26.10.2026
Хотите ещё ботов? У меня есть один! А я пока отдохну от него. https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=12062&stc=1&d=1793007952 Инструкция внутри. Сразу отвечу: А в PvP с ним. . .
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности. Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/ TL DR Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru