Russian Qt Forum
Ноябрь 25, 2024, 13:41 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Проблема с указателем на фукнцию  (Прочитано 2274 раз)
time.h
Гость
« : Июнь 30, 2011, 07:03 »

Объявляю класс  Form и в нем объявляю функцию и  указатель на функцию.
Код:
void edit(QString);
void(*pFunc)(QString);
В конструкторе класса пытаюсь установить указатель на функцию
Код:
pFunc=edit;
В результате выдает ошибку :
ошибка: argument of type ‘void (Form:: )(QString)’ does not match ‘void (*)(QString)’
Помогите пожалуйста.
Записан
LisandreL
Птица говорун
*****
Offline Offline

Сообщений: 984


Надо улыбаться


Просмотр профиля
« Ответ #1 : Июнь 30, 2011, 07:12 »

void(*pFunc)(QString); - сслылка на обычную функцию.
Ссылка на функцию нестатический член класса будет выгдядеть так:
Код
C++ (Qt)
void(Form::*pMemFunc)(QString);
Почему это разные типы? По простому говоря потому, что функция член класса кроме явных параметров получает ещё и this. А раз агрументы разные, то и тип разный.

Читать: http://www.parashift.com/c++-faq/pointers-to-members.html#faq-33.1
Записан
time.h
Гость
« Ответ #2 : Июнь 30, 2011, 07:26 »

Огромное спасибо,помогло.Правда пришлось еще присваивание изменить
Код:
pFunc=&Form::edit;
Инфа по ссылке тоже кстати весьма интересная.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.196 секунд. Запросов: 23.