为什么static数据成员一定要在类外初始化?

    技术2023-08-08  101

    因为静态成员属于整个类,而不属于某个对象,如果在类内初始化,会导致每个对象都包含该静态成员,这是矛盾的。在《c++primer》里面说在类外定义和初始化是保证static成员变量只被定义一次的好方法。

    class A { private: static int num; //类内声明 }; int A::num = 0; //类外定义初始化

    不仅仅是static的成员不能在类内定义,const类的也不能在类内定义

    Processed: 0.009, SQL: 9