static variable link error

后端 未结 3 2094
名媛妹妹
名媛妹妹 2020-11-22 08:27

I\'m writing C++ code on a mac. Why do I get this error when compiling?:

Undefined symbols for architecture i386: \"Log::theString\", referenced f

3条回答
  •  深忆病人
    2020-11-22 08:44

    In C++17, there is an easier solution using inline variables:

    class Log{
    public:
        static void method(string arg);
    private:
        inline static string theString;
    };
    

    This is a definition, not just a declaration and similar to inline functions, multiple identical definitions in different translation units do not violate ODR. There is no longer any need to pick a favourite .cpp file for the definition.

提交回复
热议问题