दिलचस्प पोस्ट
जब एक regex में जी अनुप्रयोग उपयोगी है? तर्क प्रकार के आधार पर __init__ पद्धति को अधिभार कैसे करें? ES6 वर्ग परिवर्तनीय विकल्प जीसीसी, सख्त-अलियासिंग, और एक संघ के माध्यम से कास्टिंग विंडोज पर कोड हस्ताक्षर के लिए मैं स्व-हस्ताक्षरित प्रमाणपत्र कैसे बना सकता हूं? अप्रयुक्त कोड ढूंढें जावा 8 लैम्ब्डा पर रिफ्लेक्शन टाइप इंफॉर्मेशन बैकग्राउंड सर्विस से सेंडवेंट या अन्य तरह से छूने का तरीका कैसे अनुकरण करना है? अस्थायी रूप से स्क्रॉलिंग को अक्षम कैसे करें? AppCompat v7 r21 values.xml में त्रुटि लौट रहा है? Url से चित्र लोड करें स्थिर चर को बुरा क्यों माना जाता है? डीजेंगो टेम्प्लेट लूप डिफॉल्ट को नहीं कर सकता AJAX क्या है और यह कैसे काम करता है? मैं एक सामान्य विस्तार विधि के भीतर एक स्ट्रिंग स्तंभ नाम का उपयोग कर एक IQueryable पर ऑर्डरबी कैसे लागू कर सकता हूं?

स्थैतिक वर्ग सदस्यों पर अनसुलझे बाहरी प्रतीक

बहुत आसानी से डाल:

मेरे पास एक ऐसा वर्ग है जिसमें अधिकतर स्थैतिक सार्वजनिक सदस्य होते हैं, इसलिए मैं इसी तरह के कार्यों को एक साथ समूहित कर सकता हूं जो कि अभी भी अन्य कक्षाओं / कार्यों से बुलाया जाना है

वैसे भी, मैंने अपने वर्ग के सार्वजनिक क्षेत्र में दो स्थैतिक अहस्ताक्षरित वर्णों को परिभाषित किया है, जब मैं एक ही कक्षा के निर्माता में इन मानों को संशोधित करने की कोशिश करता हूं, तो संकलन में मुझे "अनसुलझे बाहरी प्रतीक" त्रुटि मिल रही है

class test { public: static unsigned char X; static unsigned char Y; ... test(); }; test::test() { X = 1; Y = 2; } 

मैं सी ++ में नया हूँ इसलिए मेरे लिए आसान हो जाओ मैं ऐसा क्यों नहीं कर सकता?

वेब के समाधान से एकत्रित समाधान "स्थैतिक वर्ग सदस्यों पर अनसुलझे बाहरी प्रतीक"

आप X और Y की अपनी घोषणाओं से मिलान करने के लिए परिभाषाओं को जोड़ना भूल गए

 unsigned char test::X; unsigned char test::Y; 

कहीं। आप एक स्थिर सदस्य को प्रारंभ भी करना चाह सकते हैं

 unsigned char test::X = 4; 

और फिर, आप परिभाषा में (आमतौर पर एक सीएसएफ़ फ़ाइल में) घोषणा में नहीं करते हैं (जो अक्सर एक फ़ाइल में होती है)

क्लास घोषणापत्र में स्थैतिक डाटा सदस्यों की घोषणा उनके बारे में परिभाषा नहीं है। उन्हें परिभाषित करने के लिए, आपको डुप्लिकेट प्रतीकों से बचने के लिए .CPP फ़ाइल में ऐसा करना चाहिए।

आप घोषित और परिभाषित कर सकते हैं केवल डेटा अभिन्न स्थिर स्थिरांक है। ( enums मानों को स्थिर मूल्य के रूप में भी इस्तेमाल किया जा सकता है)

आप अपना कोड फिर से लिखना चाहते हैं:

 class test { public: const static unsigned char X = 1; const static unsigned char Y = 2; ... test(); }; test::test() { } 

यदि आप स्थिर वैरिएबल को संशोधित करने की क्षमता चाहते हैं (दूसरे शब्दों में जब उन्हें कॉन्स्ट के रूप में घोषित करने के लिए अनुचित है), तो आप निम्न तरीके से .H और। .CPP के बीच कोड को अलग कर सकते हैं:

एच:

 class test { public: static unsigned char X; static unsigned char Y; ... test(); }; 

.CPP:

 unsigned char test::X = 1; unsigned char test::Y = 2; test::test() { // constructor is empty. // We don't initialize static data member here, // because static data initialization will happen on every constructor call. }