To declare a function without identifying the argument list, you can do it in this way:
void say hello(...);
here, you use three point (...) to indicate that the function have no argument.
Keep in mind that the signature, not the function type, enables function overloading. For example, the following two declaration are incompatible:
long gronk (int n, float m); #1 //same signature
double gronk(int n, float m); #2 //hence not allowed
why, for example, if this is possible:
int hel=0;
float haa=3;
gronk(hel, haa); //which function to use, #1 or #2, it is conflict.
therefore, C++ doesn't allow you to overload gronk() in this fashion. You can have different return type, but only if the signature are also different, for example:
long gronk(int n, float m);
double gronk(double n, double m); //now it is allowed