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

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

Войти
Регистрация
Восстановить пароль
 
Romka
#1

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

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

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

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

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

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

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

(Visual C++ 6.0)

С уважением, Роман.
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.08.2008, 19:55
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Указатель на функцию (C++):

Как сделать функцию, возвращающую указатель на функцию (которая в свою очередь возвращает указатель на массив) - C++
Изучаю c++ по одной книжке.Она говорить не умеет.. Так вот понадобилось написать функцию,которая как параметр получает указатель на...

В функцию-метод передать указатель на другую функцию-метод и вызвать через переданный указатель - C++
Друзья! Всем привет. Вот код: class otets { public: void f (void (otets::*p)()); private: void echo_f (){}; ...

Функция, получающая указатель на обычную функцию, получает указатель на метод класса - C++
Здравтсвуйте. Имеется вопрос по указателям на методы класса. Допустим, есть функция( f ), которая принимает указатель на функцию и...

Передача умного указателя в функцию принимающую указатель на указатель - C++
Итак имеется функция со следующим параметром: HRESULT __stdcall Function(SomeClass **param); В случае, когда создаём обычный...

Передать в неуправляемую функцию указатель на указатель - C++
Неуправляемая функция типа FUNC(int ** r); Делаю так fixed (int* ptr = arr) { FUNC((int **)ptr); ...

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

6
boombastik
7 / 7 / 0
Регистрация: 13.02.2007
Сообщений: 1,255
04.08.2008, 12:21 #2
А функция у тебя статическая?
0
Romka
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 у тебя не инстанциирован, а не статические функции доступны только для объектов этого класса, к ним нельзя обращаться как к глобальным функциям...

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

Удачи, Владимир
0
Romka
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)
...
место для фантазии
...

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

Удачи, Владимир
0
Romka
04.08.2008, 17:15 #7
Не, ни одно из трех не подходит... Остается четвертое

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

С уважением, Роман.
04.08.2008, 17:15
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.08.2008, 17:15
Привет! Вот еще темы с ответами:

Работа с файлом (передать указатель на файл в функцию, вернуть указатель на файл из функции) - C++
Подскажите как передать указатель на файл в функцию, как вернуть указатель на файл из функции. void Open() // из этой функции вернуть...

Как передать параметр типа "указатель на указатель" в функцию? - C++
#include "stdafx.h" #include <conio.h> #include <iostream> using namespace std; #include <iomanip> using std::setiosflags; ...

Зачем передавать в функцию X указатель на callback функцию, если последняя ВНЕШНЯЯ и вызовется БЕЗО ВСЯКОГО УКАЗАТЕЛЯ? - C++
Собсно. То есть ребята, вот пример отсюда: http://www.cplusplus.com/reference/algorithm/count_if/ // count_if example #include...

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


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

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

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