After reading sbi and Eli Bendersky\'s answers in this question I started to wondering what static member functions are for.
A class\' friend free function shouldn\'
Static methods:
Animal
and the static method is Create
, you have to call it with Animal::Create
. This is better than global functions, and allow implementing Factories and "virtual constructors" with relatively natural syntax.