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

Как правильно кастовать указатель на константную ф-ю - C++

Восстановить пароль Регистрация
 
anubis1768
4 / 4 / 0
Регистрация: 23.02.2013
Сообщений: 151
25.02.2014, 19:21     Как правильно кастовать указатель на константную ф-ю #1
Здравствуйте. Вот рабочий пример:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
 
struct foo
{
    void f(int a, int b) { std::cout << "foo(int, int) called\n"; }
    void f(char *a, double b) { std::cout << "foo(char*, double) called\n"; }
};
 
int main()
{
    auto callback = (void(foo::*)(int, int)) &foo::f;
    return 0;
}
Все компилируется. Но если сделать первую ф-ю константную, то уже компилятор ругается. Куда нужно всунуть этот const чтобы с константной ф-ей компилировалось?

Добавлено через 7 минут
up...

Добавлено через 11 минут
Проблема актуальна
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.02.2014, 19:21     Как правильно кастовать указатель на константную ф-ю
Посмотрите здесь:

C++ как сделать правильно указатель на первую функцию
C++ Как правильно передать в функцию указатель на двумерный массив?
C++ Не знаю как правильно передать указатель
C++ Не могу понять, как правильно передать указатель на объект в файл
Правильно ли передан указатель на массив структур в функцию? C++
Расскажите, как здесь работает указатель на указатель? C++
Почему указатель на указатель объявляется как float **A; C++
C++ Как правильно удалять выделенную память под указатель на указатель?

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
retmas
Жарю без масла
803 / 685 / 143
Регистрация: 13.01.2012
Сообщений: 1,580
25.02.2014, 19:25     Как правильно кастовать указатель на константную ф-ю #2
C++
1
(void (foo::*)(int, int) const)
castaway
Эксперт С++
4838 / 2977 / 367
Регистрация: 10.11.2010
Сообщений: 11,008
Записей в блоге: 10
Завершенные тесты: 1
25.02.2014, 19:25     Как правильно кастовать указатель на константную ф-ю #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
 
struct foo
{
    void f(int a, int b) const { std::cout << "foo(int, int) called\n"; }
    void f(char *a, double b) { std::cout << "foo(char*, double) called\n"; }
};
 
int main()
{
    auto callback = (void(foo::*)(int, int) const) &foo::f;
    return 0;
}
Yandex
Объявления
25.02.2014, 19:25     Как правильно кастовать указатель на константную ф-ю
Ответ Создать тему
Опции темы

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