The Arduino '.ino' files (if there are more than one) are merged together into one '.cpp' file with #include <Arduino.h> at the top and function prototypes inserted just before the first function definition. That is then run through the C++ compiler for the selected board/processor.
The Arduino was designed for non-technical folks like artists. The automatic function prototype generation was to save the users from having to declare functions above where they are called. You can write any C++ code the compiler supports (most of C++11?).