I've never actually coded in C++, my background is Java. Seems strange to me.
It can be void as well, but using int is the best practice. I can't remember 100%, but I believe the reason was so that anything executing it receives a return value to indicate whether or not the application succeeded.