The title pretty much says it all, what does this declaration mean:
I've been challenged by a book online (recommended from this website, it's definitely the best starter tutorial I've come across, though it's much harder work than 21 days).Code:void PrintVals(void (*)(int&, int&),int&, int&);
I'm currently on day 14, on the subject of pointers to functions and in this case pointers to functions to other functions. Teach Yourself C++ in 21 Days.
I understand that the function (PrintVals) takes 3 arguments and returns void. 2 of these arguments are references to integers and the third is a pointer to a function that takes 2 references to integers and also returns void. However, it doesn't state which function it points to.Go find a C++ programmer and ask him what this declaration means:
void PrintVals(void (*)(int&, int&),int&, int&);
This is the kind of declaration that you use infrequently and probably look up in the book each time you need it, but it will save your program on those rare occasions when it is exactly the required construct.
As a complete stab in the dark, I would guess it was pointing to itself, and the asterix represents a "this" pointer, in a kind of recursive like function where it calls itself? The chapter says I will rarely use it and I will probably have to look it up every time I use it, but it'll be nice to get a simple understanding early on instead of when I'm under pressure to use it.