4 / 4 / 0
Регистрация: 23.02.2013
Сообщений: 151
1

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

25.02.2014, 19:21. Показов 1892. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте. Вот рабочий пример:
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 минут
Проблема актуальна
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.02.2014, 19:21
Ответы с готовыми решениями:

Указатель на константную строку и имя массива как указатель
Изучаю C. У меня есть указатель на константную строку, и я хочу его изменить путем передачи в...

Указатель на константную текстовую строку
С точки зрения стандарта это валидный код? int main() { char* pproverb{ &quot;A miss is as good as...

Как правильно удалять выделенную память под указатель на указатель?
есть код #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;stdlib.h&gt; #include &lt;time.h&gt; using...

Как правильно передать указатель на структуру, и правильно ее использовать
Я планирую сделать сортировку, но компилятор начал ругаться &quot;Нет существует подходящей функции...

2
Жарю без масла
867 / 749 / 225
Регистрация: 13.01.2012
Сообщений: 1,702
25.02.2014, 19:25 2
C++
1
(void (foo::*)(int, int) const)
2
Эксперт С++
4985 / 3092 / 456
Регистрация: 10.11.2010
Сообщений: 11,169
Записей в блоге: 10
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;
}
1
25.02.2014, 19:25
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.02.2014, 19:25
Помогаю со студенческими работами здесь

как правильно работает указатель?
Вот рабочий код, который я написал, складывает 2 массива #include &lt;iostream&gt; #include &lt;cmath&gt;...

Как правильно передавать указатель на функцию?
Класс для очереди typedef unsigned size_t; template&lt;typename T&gt; struct List { T data; ...

Не знаю как правильно передать указатель
В общем для начала приложу код ( не пугайтесь , что придется много читать , из этого кода изучить...

Как правильно объявлять указатель на массив указателей?
#include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;malloc.h&gt; int main(){ int a, b; int *a1,...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru