LINUX.ORG.RU

C++: указатель на функцию и scandir


0

0

Если вопрос совсем глупый - прошу простить, я на плюсах пишу неделю :(

scandir принимает два указателя на функции - функцию-фильтр и сортировку. Фильтр входит в класс, функция со некомпилящейся строчкой - тоже. Получается: n = scandir(".", &namelist, &FSChangeMon::is_dir_dirent, alphasort);

g++ выдает: FSChangeMon.cl.cpp:175: ошибка: аргумент типа ‘int (FSChangeMon::)(const dirent*)’ не соответствует типу ‘int (*)(const dirent*)’

То есть функция, на которую указывает указатель, не может входить в класс?

> То есть функция, на которую указывает указатель, не может входить в класс?

нет конечно. нестатическая функция входящая в класс принимает дополнительный неявный аргумент -- указатель на объект класса. И она не может быть вызвана без объекта класса.

dilmah ★★★★★
()
Ответ на: комментарий от dilmah

> То есть функция, на которую указывает указатель, не может входить в класс?

ну то есть указатель на нее может указывать -- просто он не совместим с указателем на обычную функцию

dilmah ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.