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.