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

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

Войти
Регистрация
Восстановить пароль
 
Romka
Сообщений: n/a
#1

Указатель на функцию - C++

03.08.2008, 19:55. Просмотров 866. Ответов 6
Метки нет (Все метки)

Мир вашей хате!

Подскажите пожалуйста в такой проблеме...

В одном классе (MyClass1) есть переменная указатель на функцию (без параметров и результата). В другом классе (MyClass2) есть функция без параметров и результата. Когда я пытаюсь присвоить переменной значение функции появляется такая ошибка:

cannot convert from 'void (__thiscall MyClass2::*)(void)' to 'void (__cdecl *)(void)'

Как это побороть?

(Visual C++ 6.0)

С уважением, Роман.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
boombastik
7 / 7 / 0
Регистрация: 13.02.2007
Сообщений: 1,255
04.08.2008, 12:21     Указатель на функцию #2
А функция у тебя статическая?
Romka
Сообщений: n/a
04.08.2008, 13:23     Указатель на функцию #3
Нет, это функция член класса. Вот кусочек моего кода:

Код
typedef void (*MyEventProc)();

class MyClass1 : public
{
  ...
    MyEventProc  OnMyEvent;
  ...
};

class MyClass2 : public
{
  ...
    MyClass1 var;

    void EventProc();
  ...
};

...
var.OnMyEvent = EventProc; // здесь ошибка
...
boombastik
7 / 7 / 0
Регистрация: 13.02.2007
Сообщений: 1,255
04.08.2008, 14:51     Указатель на функцию #4
Так ведь MyClass2 у тебя не инстанциирован, а не статические функции доступны только для объектов этого класса, к ним нельзя обращаться как к глобальным функциям...

Что-то у Страуструпа было по этому поводу...

Удачи, Владимир
Romka
Сообщений: n/a
04.08.2008, 16:22     Указатель на функцию #5
Дык я понимаю в чем проблема... Решить её как по красивше?

С уважением, Роман.
boombastik
7 / 7 / 0
Регистрация: 13.02.2007
Сообщений: 1,255
04.08.2008, 16:58     Указатель на функцию #6
Вариантов много...

1. Изменить дизайн, может быть вообще отказаться от callback'ов и использовать силу наследования и полиморфизма.
2. Объявить функцию как статическую...
3. Вынести функцию за пределы класса (аналогичен варианту 2)
...
место для фантазии
...

В общем - дерзайте.

Удачи, Владимир
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.08.2008, 17:15     Указатель на функцию
Еще ссылки по теме:

Передать в неуправляемую функцию указатель на указатель C++
C++ Указатель на функцию
Указатель на функцию C++
C++ Указатель на функцию возвращающую указатель
C++ Указатель на функцию

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

Или воспользуйтесь поиском по форуму:
Romka
Сообщений: n/a
04.08.2008, 17:15     Указатель на функцию #7
Не, ни одно из трех не подходит... Остается четвертое

Все-равно спасибо!

С уважением, Роман.
Yandex
Объявления
04.08.2008, 17:15     Указатель на функцию
Ответ Создать тему
Опции темы

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