If you are using C++, then there is no difference, it is a "hangover" from the base language C
void foo(void) {}
is the equivelent of
void foo();
In that they both declare a function that takes no parameters.
However, in C the situation is a little different:
void foo(void);
Declares a function that takes no parameters.
void foo();
Declares a function that will take any parameters. (This usage was depreciated in the 1999 C spec).