5.3. Static Data Members

Object-oriented programming promotes the minimizing of global variables in software designs. Although global variables are alternatives to function arguments, they have several problems:

  • You cannot encapsulate global variables. Their declarations make them available to functions that may not need to access them.

  • Functions may inadvertently change global variables and cause side effects somewhere else.

  • Programs with a large number of global variables are hard to enhance and maintain.

C++ provides a viable alternative to global variables, which solves these problems: static data members. A static data member encapsulates a variable within a class, creating a single member shared by all objects you instantiate from the class. ...

Get Navigating C++ and Object-Oriented Design now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.