Well, the main reason is efficiency. Every time a function is called, a series of instructions must be executed, both to set up the function call, including pushing any arguments onto the stack, and to return from the function. For inline functions this is not required.
As for the exectuable being larger, the general rule is:
1) if the inline function is small, the exe will be smaller.
2) if the inline function is large, the exe will be larger.
As for you using inline functions "in all your classes", you can but it's worth remembering "inline" is not a command to your compiler but a request, so it may not end up actually being inline, depending on the function.
The main reasons for a compiler not choosing to make a function inline are often:
1) the function contains a loop, switch or a goto.
2) it's recursive.
3) its contains static variables.
HTH.