In-Class Initialization of static
Data Members
Ordinarily, class static
members may not be initialized in the class body. However, we can provide in-class initializers for static
members that have const
integral type and must do so for static
members that are constexpr
s of literal type (§ 7.5.6, p. 299). The initializers must be constant expressions. Such members are themselves constant expressions; they can be used where a constant expression is required. For example, we can use an initialized static
data member to specify the dimension of an array member:
class Account {public: static double rate() { return interestRate; } static void rate(double);private: static constexpr int period = 30;// period is a constant expression double ...
Get C++ Primer, Fifth Edition 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.