Форум программистов, компьютерный форум CyberForum.ru

Достать нужный объект из контейнера - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Не инициализированные указатели http://www.cyberforum.ru/cpp-beginners/thread1191007.html
Добрый день, пишу небольшую игру на движке, появилась проблема main.cpp #include “mainClass.h” int main() { bool endless = true; mainClass mainObject; mainObject.initialize();
C++ Слушание udp порта Создаем сервер udp, слушаем порт, как можно сделать так чтобы пока я обрабатываю 1 полученный пакет, все остальные в очереди стоят, чтобы не посеять их? http://www.cyberforum.ru/cpp-beginners/thread1190970.html
Разработать класс Итератор, методы которого: переход в начало списка, в конец, к текущему элементу списка, к с C++
Разработать класс Итератор, методы которого: переход в начало списка, в конец, к текущему элементу списка, к следующему элементу, к предыдущему.
C++ Определить номера строк матрицы, содержащих хотя бы одно заданное значение, и умножить их на другое
1. Определить номера строк матрицы R, хотя бы один элемент которых равен с, и элементы этих строк умножить на d.
C++ Функция удаления строки из файла http://www.cyberforum.ru/cpp-beginners/thread1190942.html
Мной написана такая функция. В ней две проблемы: 1) после поиска выводится не найденное, а все, что записано 2) после удаления строки появляется строка нулей (в конце нового файла). как это решить? :-| void remove (){ //удаление struct recipe *list; int k=0; int n=0; char c; int i; FILE *fa; fa=fopen("list.txt", "r"); if (!fa){
C++ Программа вычисления простой формулы Доброе утро, подскажите, решение. Нам ничего не объяснили, методичек не дали, сказали "загуглите". Все, что смог загуглить, видно в коде ниже. Но как видно - не сработало. \frac{\sqrt{cos(\alpha)+sin(\beta)}}{a^3+b^2-c^3} #include <iostream> #include <cmath> int main() { double a, b, c, alpha, beta; подробнее

Показать сообщение отдельно
Skaarj
2 / 2 / 1
Регистрация: 28.06.2013
Сообщений: 53
28.05.2014, 13:10  [ТС]
Спасибо за наводку. Ввёл новую виртуальную функцию и определил для каждого наследника. В моём случае не так уж и много классов, так что вполне нормальный вариант. И главное dynamic_cast стал работать как надо - до этого выбивал при не совпадение типов
Я так понимаю это и есть визиторы?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class CObject
{
virtual char* ObjectType() = 0;
};
 
class CLaser : public CObject
{
      char* ObjectType() { char *s; s = "Laser"; return s;}
};
 
class CMeteor : public CObject 
{
      char* ObjectType() { char *s; s = "Meteor"; return s;}
};
И проверяю тип
C++
1
2
3
4
5
6
    if(Object->ObjectType() == "Meteor")
    {
        CMeteor* Meteor = dynamic_cast<CMeteor*>(Object);
        if(Collision(Meteor) == true)
            Object->DestroyObject();
    }
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru