Re: static function
To put it short, the major advantage of a static member function is that you don't need an instance of your class (i.e. a concrete object) to call it on. However, this also brings along the major disadavantage: As you don't have an associated object you can't (directly) access any non-static class members from a static member function.
I was thrown out of college for cheating on the metaphysics exam; I looked into the soul of the boy sitting next to me.
This is a snakeskin jacket! And for me it's a symbol of my individuality, and my belief... in personal freedom.