दिलचस्प पोस्ट
पासवर्ड हैश के लिए गैर यादृच्छिक नमक तत्व को jQuery स्क्रॉल करें event.preventDefault () बनाम वापसी लौटा (कोई jQuery नहीं) पांडस ग्रुप को परिवर्तित करना डेटाफ़्रेम को ऑब्जेक्ट है एंड्रॉइड पर 'ऐप इंस्टॉल नहीं' त्रुटि Php में URL से टुकड़ा (हैश '#' के बाद मान) प्राप्त करें jqGrid और गतिशील कॉलम बाइंडिंग अपने स्वयं के (आशय) से एक अन्य अनुप्रयोग खोलें सीएसएस IE में संपत्ति बारी बारी से स्क्रीन के शीर्ष पर एक डिवेल स्टिक को कैसे स्क्रॉल किया जा सकता है? JQuery का उपयोग कर समानांतर एसिंक्रोनस अजाक्स अनुरोध एएसपी.नेट एमवीसी में टेम्पटडाटा बनाम सत्र का उपयोग कब किया जाए रिक्त स्थान के साथ फाइलों की एक सूची पर दोहराएं क्या C ++ या C में foo (void) और foo () के बीच अंतर है? HTTP POST मल्टीपार्ट / फॉर्म-डेटा के साथ फाइल को कैसे अपलोड करें

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

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

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

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

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. }