Hey!

Question about the following:

Sally so(3,87)
so.print();

As we know by now, Sally so,  "makes" an object from the class Sally called so, but why is it that just by typing so(3,87) so goes from being a object to a constructor?

*I do understand that the constructor in the class Sally is designed to take two integers
I also understand that the constructor automatically runs when an object is made, or at least when an object is a part of a function-call. 

Another question:
Why can we not just give write:
Sally::Sally(int a, int b) : constVar(b)....? instead of having to code the following:

Sally::Sally(int a, int b) : regVar(a), constVar(b)? 

In my class, we almost allways give the private variabel the parameter 0. Why is that?
example: 
Sally::Sally(int a, int b) : regVar(0), constVar(0)