Я пытаюсь заставить что-то подобное работать, передавая указатель на функцию. Я знаю, что вы можете просто передать указатель первого класса ко второму и получить второй, чтобы запустить функцию-член первого класса с помощью указателя. Но я не хочу, чтобы второй класс полагался на то, кто первый класс. Это больше похоже на стиль кодирования, который я ищу для достижения этого. БлагодаряПередача данных между классами с указателями функций
//////////////////////////////////////////////////
class Second
{
public:
Second::Second(void (*SecondTriggered)(void));
};
Second::Second(void (*SecondTriggered)(void))
{
SecondTriggered();
}
//////////////////////////////////////////////////
class First
{
public:
First::First();
void SecondTriggered();
Second *second;
};
First::First(){
printf("first class was created");
second = new Second(SecondTriggered);
}
void First::SecondTriggered(){
printf("second class was created and responded");
}
/////////////////
int main()
{
First *first = new First();
}
Я получаю эту ошибку:
error C3867: 'First::SecondTriggered': function call missing argument list;
use '&First::SecondTriggered' to create a pointer to member
Любые идеи.
[Что это основная проблема, которую вы пытаетесь решить] (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)? – Johnsyweb
Сделать второй класс способным запускать функцию-член первого класса, но без посылки указателя на весь класс поверх. Просто функция. – aquawicket
@ dasblinkenlight А, не понимал, что произошло в это время. Удалили и мой комментарий. – smocking