Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
integerBrain
0 / 0 / 0
Регистрация: 16.04.2013
Сообщений: 14
#1

Передача функции (как параметра) в функцию унаследоваемого класса - C++

16.06.2013, 10:44. Просмотров 471. Ответов 3
Метки нет (Все метки)

Доброго времени суток. Есть класс (в моем случае это Sprite) и я создаю произвольный класс (например Game : public Sprite). У меня есть в Game функция draw (в Sprite она тоже есть, но для отрисовки всех объектов я использую vector<Sprite *> и выходит, что если я запущу цикл для вектора то он выполнит только Sprite::draw(), а то что было в Game::draw() даже не тронет) и я хочу эту функцию Game::draw передать в унаследоваемый класс Sprite через функцию Sprite::setDrawFunc(void f(void)); также есть функция (правда я не уверен что это вообще) void* Sprite::func(void) и в функции Sprite::setDrawFunc я пишу func = f; Но ничего не выходит. Пожалуйста подскажите, что я делаю не так. Возможно можно как-то решить проблему по другому.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.06.2013, 10:44
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Передача функции (как параметра) в функцию унаследоваемого класса (C++):

Передача параметра в функцию класса - C++
Здравствуйте. Столкнулся с проблемой. Почему переменная &quot;x&quot; не становится равна 25? #include &lt;iostream&gt; using namespace std; ...

[C++, OpenGL, glut] передача метода класса в качестве параметра функции glutDisplayFunc() - C++
Пишу программу для обхода бинаронго дерева поиска. Программа написана и кажется даже работает, но только в консоли. Решил выводить...

Передача потока как параметра в функцию - C++
Дорогие форумчане! Повторяю пример из книжки, пока остановился из-за ошибки. //Программа &quot;Функция ввода вопросов, объявление&quot; ...

Передача массива в функцию, как параметра - C++
Создать массив размерностьюN(описать константу и задать размер по умолчанию равный 10). Разработать процедуру заполняющую массив,...

Передача двумерного массива, как параметра в функцию - C++
дан двумерный массив и его сортировка, я записал это все как комментарии помогите пожалуйста записать эту программу через параметры...

Передача массива, как формального параметра в функцию - C++
#include &lt;iostream&gt; #include &lt;ctime&gt; using namespace std; const int MAX_SIZE = 100; void print_array(int a, int size)...

3
OhMyGodSoLong
~ Эврика! ~
1244 / 993 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
16.06.2013, 11:04 #2
Да, это проблема возникала не только у вас. Для её решения придумали целый механизм виртуальных функций и встроили его в язык.
1
integerBrain
0 / 0 / 0
Регистрация: 16.04.2013
Сообщений: 14
16.06.2013, 11:20  [ТС] #3
Цитата Сообщение от OhMyGodSoLong Посмотреть сообщение
Да, это проблема возникала не только у вас. Для её решения придумали целый механизм виртуальных функций и встроили его в язык.
Круто, спасибо. Я еще хочу спросить можно ли как-то делать виртуальную функцию и в наследнике её переопределять так, чтоб не переписывать её а дополнять. В моем случае в Sprite::draw() идут очень важные действия без которых Game::draw() просто не имеют смысла.

Добавлено через 6 минут
//извините за спам
Все же получится если я напишу в виртуальной функции Sprite::draw(); Да?
0
OhMyGodSoLong
~ Эврика! ~
1244 / 993 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
16.06.2013, 11:40 #4
Да. Всё получится именно так, как вы хотите.
1
16.06.2013, 11:40
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.06.2013, 11:40
Привет! Вот еще темы с ответами:

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

Передача функции, как параметра - C++
у меня в алгоритме в некоторый момент ищется значение функции.этот алгоритм нужен для нескольких функций.можно ли передать в качестве...

Передача массива как параметра функции - C++
известно что, если нужно изменить значение переменной(а ни ее копии в стеке) нужно передать ее адрес. void func(int *a,int *b) ...

Передача std::wstring как параметра функции-члена - C++
IDE VS 2015. В солюшене 2 проекта. В одном из проектов класс примерно такой: class Messager{ void message(std::wstring msg)...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru