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

Не получается преобразовать типы указателей на функцию - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Интерполирование http://www.cyberforum.ru/cpp-beginners/thread521275.html
Здравствуйте. Трудность в написании программы по интерполированию в СИ++. условия на фото
C++ Даны три строки. Определить, можно ли из символов первых двух строк получить третью строку. Не решается.. (( бьюсь 2 дня.. Код свой приводить не буду дабы не сбивать многоуважаемых программистов с толку) http://www.cyberforum.ru/cpp-beginners/thread521269.html
Определить общее время работы прибора за неделю. C++
Создайте структуру Время с элементами Часы, Минуты. Реализовать следующую задачу - у прибора зафиксировано время начала работы и время завершения работы в текущий день. Определить общее время работы...
C++ Бинарный поиск (неотсортированный массив)
struct kontakt { string kto; string phone; }; Дан массив структур array.kto = name + char(30) + address; Нужно создать бинарный поиск (нужно искать очень быстро), vector, list, и все...
C++ Доступ к членам класса класса http://www.cyberforum.ru/cpp-beginners/thread521256.html
Всем привет. Вобщем есть базовый класс, и два производных. Пользователь вводит координаты нужно проверить факт пересечения одной фигуры с другой(прямоугольник и квадрат). Вопрос в следующем проверка...
C++ Таймер (выполнение кода через заданный промежуток времени) Всем привет, подскажите, как создать внутренний таймер, то есть через что бы через некоторое количество секунд, программа опять выполняла определенный код... подробнее

Показать сообщение отдельно
Kastaneda
Нарушитель
Эксперт С++
4676 / 2880 / 234
Регистрация: 12.12.2009
Сообщений: 7,314
Записей в блоге: 2
Завершенные тесты: 1
18.03.2012, 09:33
Если имеется ввиду сделать нечто такое:
C++
1
2
3
typedef void (*fptr)(Point<float> &p);
A a;
fptr ptr = &a.func;
то так сделать неполучится. Дело в том, что функции-члены в действительности располагаются вне класса и первым аргуметом всегда принимают указатель на вызывающий объект (this). О передачи this заботится компилятор. Поэтому нельзя вызвать функцию-член без объекта, соответственно нельзя получить адрес функции-члена конкретного объекта, т.к. невозможно потом его использовать для вызова функции.
Т.е. вот так:
C++
1
2
fptr ptr = &a.func;
ptr(Point<float>());
сделать не получиться.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru