0 / 0 / 0
Регистрация: 17.07.2008
Сообщений: 6
|
||||||
1 | ||||||
Передача метода класса в качестве параметра для метода другого класса06.02.2013, 21:31. Показов 2384. Ответов 2
Метки нет Все метки)
(
Здравствуйте,
Передо мной стоит такая задача. Необходимо разработать механизм, который бы мог прервать любую функцию, при этом абсолютна не зная, что за функцию ему передали. Мне ничего лучше в голову не пришло, как создать класс унаследованный от QThread (использую QT, но думаю это не принципиально в данном вопросе), который мог бы получать функцию какого то класса в качестве атрибута и выполнять её в теле run(), выполнение которого он бы уже мог прервать с помощью метода terminate(). Вот какой класс у меня получился:
"error C2664: Stopper::connectRequest: невозможно преобразовать параметр 1 из 'void' в 'void (__cdecl *)(void)' Выражение, имеющее тип void, нельзя преобразовать в другой тип" Насколько я понял изучая эту тему, мне нужно корректно реализовать делегат, но у меня никак не получается это сделать... Прошу помощи. Заранее спасибо
0
|
|
06.02.2013, 21:31 | |
Ответы с готовыми решениями:
2
Передача члена класса в качестве параметра метода [C++, OpenGL, glut] передача метода класса в качестве параметра функции glutDisplayFunc() двумерный массив в качестве параметра метода класса
|
163 / 163 / 22
Регистрация: 23.02.2011
Сообщений: 347
|
|
06.02.2013, 21:50 | 2 |
Ты не путай, функцию и метод. Можешь сделать класс, в который тебе нужно это передать шаблонным и передавать в него указатель на экземпляр класса, чей метод нужно вызвать. А вообще, подобные проблемы говорят, об изначально неудачно спроектированной программе. Попробуй найти более простое решение.
0
|
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
|
|
06.02.2013, 21:57 | 3 |
если сигнатура известна, то можно пользоваться
std::function boost::function либо же как в классике замутить все с помощью паттерна Command (Команда) - тут чуть больше приседаний придется сделать, но если буста нет и нового стандарта нет - то это наверно лучшая альтернатива.
0
|
06.02.2013, 21:57 | |
Помогаю со студенческими работами здесь
3
Передача enum в качестве аргумента метода класса Передача метода класса в качестве аргумента внешней функции Вызов метода класса из метода другого класса Указатель на метод класса в качестве аргумента метода класса Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |