كيفية تعريف ثابت ثابت `std::string` في كلاس C++ بشكل صحيح؟
مرحباً بالجميع! بدأت في تعلم C++ وواجهت مشكلة عند العمل مع الثوابت الثابتة في الكلاس. أحتاج إلى تعريف عضو ثابت من نوع `const std::string` داخل الكلاس.\n\nهذا هو الكود الخاص بي:\n\n```cpp\n#include \n\nclass MyClass {\npublic:\n static const std::string kAppName = "MyApp"; // خطأ!\n};\n```\n\nالمترجم يعطي خطأ: "error: 'const std::string kAppName' cannot be initialized by a constant expression" أو شيء مثل "non-const static data member must be initialized out of line". أعلم أنه بالنسبة للأنواع الصحيحة (int, char إلخ) و enum يمكن التهيئة مباشرة داخل الكلاس، لكن بالنسبة لـ std::string هذا لا يعمل.\n\nجربت خيارات مختلفة: أزلت const، أضفت constexpr، لكن لا شيء يساعد. على الإنترنت يكتبون أنه يجب تعريف static خارج الكلاس.