हेडर फ़ाइल में क्लास के प्राइवेट स्टैटिक मेंबर्स को कैसे इनिशियलाइज़ करें?
नमस्ते! मैंने C++ सीखना शुरू किया है और स्टैटिक क्लास मेंबर्स के साथ काम करते समय एक समस्या का सामना किया। मेरे पास एक सरल क्लास है जो बनाए गए ऑब्जेक्ट्स की संख्या स्टोर करती है:\n\n```cpp\n// MyClass.h\nclass MyClass {\nprivate:\n static int counter; // स्टैटिक मेंबर की घोषणा\npublic:\n MyClass() { ++counter; }\n int getCounter() const { return counter; }\n};\n```\n\nमैं `counter` को सीधे हेडर फ़ाइल में इनिशियलाइज़ करने की कोशिश कर रहा हूँ, उदाहरण के लिए:\n\n```cpp\nstatic int counter = 0; // त्रुटि!\n```\n\nलेकिन कंपाइलर त्रुटि देता है: "non-const static data member must be initialized out of line"। अगर मैं मेंबर को पब्लिक बनाता हूँ और इसे .cpp फ़ाइल में इनिशियलाइज़ करता हूँ, तो सब काम करता है:\n\n```cpp\n// MyClass.cpp\n#include "MyClass.h"\nint MyClass::counter = 0;\n```\n\nलेकिन मुझे हर बार एक .cpp फ़ाइल बनाना असुविधाजनक लगता है।