Intent: For a utility class, which does not require instantiation and only has static methods, use a private constructor. The compiler can then enforce that no instances are created.
http://today.java.net/pub/a/today/2006/11/28/PrivateConstructorsSQ15.html?page=last&x-maxdepth=0
http://www.cenqua.com/forums/thread.jspa?threadID=1187&tstart=0
Using all static methods in a utility class supports and enforces the class to have no state. Stateless objects are more efficient and easier to debug and test.[1][2] All utility classes are stateless. Good candidates for utility classes are where there is a grouping of ConvenienceMethods.
[2] http://info.borland.com/techpubs/delphi/delphi5/dg/mts.html
I wouldn't call this a pattern so much as a workaround for the deficiencies of languages (such as JavaLanguage) that don't have proper namespaces. Except in such languages, there is no reason to make a class that will never be instantiated, and so this should generally be considered an AntiPattern. (In RubyLanguage, for example, you'd use a module instead of a class for this purpose. In CeePlusPlus, I think you'd be better off using a namespace, but my C++ is rusty enough that I hesitate to say for sure.) --MarnenLaibowKoser
Your C++ isn't rusty.