Yes, it does. It has to. Otherwise, there would be multuple constructor functions created every time you included your header somewhere else.
Why is the constructor inline?? C++ is not Java. By exposing your constructor definition, the users have to recompile and relink should you change it. By keeping the definition in another soruce file, the users need only relink.
Thanks for your response weaknessforcats. But my worry is about the things the compiler does when it has to execute line # 9. Here are few queries. Pl answer them:
1) Does compiler allocate memory for that object a1 and initialize it? OR
2) Does it only put the object a1 in its symbol table without initializing it?
I am little curious to know as to what are the things that happen during compilation in line # 9.