How to declare a static const char* in your header file?

后端 未结 9 1089
盖世英雄少女心
盖世英雄少女心 2021-01-31 13:26

I\'d like to define a constant char* in my header file for my .cpp file to use. So I\'ve tried this:

private:
    static const char *SOMETHING = \"sommething\";         


        
9条回答
  •  面向向阳花
    2021-01-31 14:16

    Constant initializer allowed by C++ Standard only for integral or enumeration types. See 9.4.2/4 for details:

    If a static data member is of const integral or const enumeration type, its declaration in the class definition can specify a constant-initializer which shall be an integral constant expression (5.19). In that case, the member can appear in integral constant expressions. The member shall still be defined in a name- space scope if it is used in the program and the namespace scope definition shall not contain an initializer.

    And 9.4.2/7:

    Static data members are initialized and destroyed exactly like non-local objects (3.6.2, 3.6.3).

    So you should write somewhere in cpp file:

    const char* SomeClass::SOMETHING = "sommething";
    

提交回复
热议问题