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

后端 未结 9 1253
盖世英雄少女心
盖世英雄少女心 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

    You need to define static variables in a translation unit, unless they are of integral types.

    In your header:

    private:
        static const char *SOMETHING;
        static const int MyInt = 8; // would be ok
    

    In the .cpp file:

    const char *YourClass::SOMETHING = "something";
    

    C++ standard, 9.4.2/4:

    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. In that case, the member can appear in integral constant expressions within its scope. The member shall still be defined in a namespace scope if it is used in the program and the namespace scope definition shall not contain an initializer.

提交回复
热议问题