Как мне вызвать указатель на член-функцию?

Изменить: Сегодня я узнал, как лучше это сделать. Пожалуйста, см. Ответ ircmaxell.


Разбор выходных данных SHOW COLUMNS FROM table;

. Здесь вы найдете более подробную информацию: http://dev.mysql.com/doc/ RefMan / 5.0 / ен / шоу-columns.html

10
задан Rob Kennedy 18 December 2009 в 15:58
поделиться

3 ответа

p-> pfn - указатель указателя -в функцию-член. Чтобы вызвать функцию с помощью такого указателя, вам необходимо использовать оператор -> * или оператор . * и указать объект типа C в качестве левый операнд. Вы этого не сделали.

Я не знаю, какой объект типа C должен использоваться здесь - только вы это знаете - но в вашем примере это может быть * это . В этом случае вызов может выглядеть следующим образом

(this->*p->pfn)(val)

Чтобы он выглядел менее запутанным, вы можете ввести промежуточную переменную

PFN pfn = p->pfn;
(this->*pfn)(val);
17
ответ дан 3 December 2019 в 16:29
поделиться

Попробуйте

return (this->*p->pfn)(val);
8
ответ дан 3 December 2019 в 16:29
поделиться

p-> pfn - указатель на функцию. Вам нужно использовать *, чтобы он работал. Измените на

(*(p->pfn))(val)
-1
ответ дан 3 December 2019 в 16:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: