|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
02.10.2017, 21:45 | #1 |
Форумчанин
Регистрация: 24.06.2017
Сообщений: 160
|
Шаблон не хочет работать.
Я написал шаблон
Код:
Код:
Код:
|
02.10.2017, 21:48 | #2 |
Форумчанин
Регистрация: 24.06.2017
Сообщений: 160
|
Тоже самое тут:
2) Вместо двох решил шаблон сделать. но ... не работает. Я что то не так с шаблоном делаю? Код:
|
02.10.2017, 21:52 | #3 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Так а где ".mIsActive;" там?
И код странный какой-то. Может например лучше всем объектам наследоваться от GameObject? Ну а в remove просто что-то странное написано в конце, шаблон не причем. Смотрите пример в документации.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
02.10.2017, 23:18 | #4 | |
Форумчанин
Регистрация: 24.06.2017
Сообщений: 160
|
Цитата:
Код:
Код:
Код:
GameObject у меня нету. В ремув ж я должен передавать функцию шаблон если я так передаю auto itFireBall = std::remove_if(mFireBalls.begin(), mFireBalls.end(), IsFireBallDestroyed); то все ок работает |
|
02.10.2017, 23:50 | #5 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Не видите разницу между IsFireBallDestroyed и IsNotActive(mEnemies)?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
03.10.2017, 01:08 | #6 |
Форумчанин
Регистрация: 12.04.2017
Сообщений: 889
|
Код:
Но я бы там еще во всех классах ее заменил на геттер типа inline bool isActive(){return mIsActive;} Компилятор сделает все быстро, но у нас тут свободы больше в будущем. Да, еще я ссылку в параметре сделал, иначе вы копии плодите. Плюс наследования с общим предком на всех в том, что все объекты (или указатели на них) можно свалить в 1 общий массив "предков". А дальше простым циклом пробегать по нему и выдавать команду типа "нарисуйся". В вашем варианте вы логику объекта выносите за пределы объекта. Т.е. это уже у вас процедурное построение, а не ООП. В ООП вернее было бы сделать метод у предка: Код:
Последний раз редактировалось alexzk; 03.10.2017 в 01:18. |
03.10.2017, 14:06 | #7 |
Форумчанин
Регистрация: 24.06.2017
Сообщений: 160
|
|
03.10.2017, 14:10 | #8 | |
Форумчанин
Регистрация: 24.06.2017
Сообщений: 160
|
Цитата:
Код:
Код:
Error C2039 'mIsActive': is not a member of 'std::vector<Enemy,std::allocator<_ Ty>>' |
|
03.10.2017, 14:33 | #9 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,709
|
Да не суйте вы шаблону вектор. Там указывается предикат, а параметр сам подставится.
|
03.10.2017, 14:36 | #10 |
Форумчанин
Регистрация: 24.06.2017
Сообщений: 160
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Программа не хочет работать. | Renc | Visual C++ | 1 | 19.02.2013 12:19 |
Программа не хочет работать | OperaNeMini | Софт | 15 | 02.12.2012 16:24 |
Сортировка не хочет работать :( | Авторитет | Общие вопросы C/C++ | 1 | 05.05.2011 21:10 |
Не хочет работать iif | alco84 | Microsoft Office Access | 6 | 18.03.2010 09:48 |
Не хочет работать OpenPictureDialog | guffer | Общие вопросы Delphi | 4 | 08.07.2009 20:14 |