需求

在类内直接初始化非常量静态成员,编译时给了报错: error: ISO C++ forbids in-class initialization of non-const static member

解决

解决也非常简单,使用 C++17, 然后增加 inline 标识,就可以了。

class A
{
      virtual void fun1(){};
      int a;
public:
      static inline int b=0;
}

参考

C++:错误:ISO C++ forbids in-class initialization of non-const static member ‘A::b’