Как указать на функцию ссылочного класса? - PullRequest
0 голосов
/ 12 февраля 2019

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

Я пытался заменить ссылку на класс другим указателем, не сработало.
Я такжепопытался использовать -> вместо ., не повезло.

class First {
  void FunToPointTo();
};
class Second {
  First &reference;
  void (*pointer)();
  Second(First &first);
};

Second::Second(First &first) : reference(first) {
  pointer = reference.FunToPointTo;
}

Ошибка: невозможно преобразовать «First :: FunToPointTo» из типа «void (First ::) ()» в тип «void (*) () '

Теперь я пытаюсь каким-то образом сделать мой указатель на void (First::)(), но я не знаю точный синтаксис.

Помощь очень ценится, также, пожалуйста, извините мойотсутствие знаний, так как я только начинаю с ++.

1 Ответ

0 голосов
/ 12 февраля 2019

Ваш тип указателя должен быть

void (First::*ptr)()

И назначаться с помощью

&First::FunToPointTo

Так как вам нужно указать функцию из класса First.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...