सी में ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग के साथ काम करते समय, डिफॉल्ट कंस्ट्रक्टर से संबंधित त्रुटियों का सामना करना असामान्य नहीं है। यह व्यापक मार्गदर्शिका आपको "क्लास के लिए कोई डिफॉल्ट कंस्ट्रक्टर मौजूद नहीं है" समस्या को समझने और हल करने में सहायता करेगी। किसी वर्ग का एक ऑब्जेक्ट, उसके कंस्ट्रक्टर को आवश्यक तर्क प्रदान किए बिना। एक डिफ़ॉल्ट कंस्ट्रक्टर एक विशेष सदस्य फ़ंक्शन है जो किसी ऑब्जेक्ट को उसके डिफ़ॉल्ट मानों के साथ प्रारंभ करता है जब कोई तर्क निर्दिष्ट नहीं किया जाता है।
इस त्रुटि का सबसे आम कारण तब होता है जब एक वर्ग एक या अधिक कंस्ट्रक्टर के साथ परिभाषित लेकिन एक डिफ़ॉल्ट कंस्ट्रक्टर का अभाव है। एक बार जब कोई क्लास किसी कंस्ट्रक्टर को परिभाषित कर लेती है, तो कंपाइलर स्वचालित रूप से एक डिफॉल्ट कंस्ट्रक्टर उत्पन्न नहीं करेगा।
इस त्रुटि को हल करने के लिए, आपके पास तीन विकल्प हैं:
1 . एक डिफॉल्ट कंस्ट्रक्टर को परिभाषित करें:आप क्लास के भीतर एक डिफॉल्ट कंस्ट्रक्टर को परिभाषित कर सकते हैं जो कोई तर्क नहीं लेता है, जैसा कि नीचे सही क्लास में देखा गया है:क्लास गेमक्रिप्टोग्राफी
{
जनता:
ब्लोफिश _ब्लोफिश;
गेमक्रिप्टोग्राफी();
शून्य डिक्रिप्ट (अहस्ताक्षरित चार पैकेट []);
शून्य एन्क्रिप्ट (अहस्ताक्षरित चार पैकेट []);
ब्लोफिश ब्लोफिश;
शून्य सेटकी (अहस्ताक्षरित चार k[]);
शून्य SetIvs(अहस्ताक्षरित चार i1[], अहस्ताक्षरित चार i2[]);
};
class GameCryptography { public: Blowfish _blowfish; GameCryptography(); void Decrypt(unsigned char packet[]); void Encrypt(unsigned char packet[]); Blowfish Blowfish; void SetKey(unsigned char k[]); void SetIvs(unsigned char i1[],unsigned char i2[]); };ऑब्जेक्ट को इंस्टेंट करते समय, आप डिफ़ॉल्ट कंस्ट्रक्टर की आवश्यकता को हटाते हुए, कंस्ट्रक्टर को स्पष्ट रूप से आवश्यक तर्क प्रदान कर सकते हैं।
3. "nullptr" इनिशियलाइज़र का उपयोग करें:
GameCryptography* gc = nullptr;
अतिरिक्त विचार
class GameCryptography { public: Blowfish _blowfish; GameCryptography(); void Decrypt(unsigned char packet[]); void Encrypt(unsigned char packet[]); Blowfish Blowfish; void SetKey(unsigned char k[]); void SetIvs(unsigned char i1[],unsigned char i2[]); };ए। एक एल्गोरिदम निर्दिष्ट करना:यह ध्यान रखना महत्वपूर्ण है कि संचालन के तरीके, जैसे ईसीबी और सीबीसी, को स्वयं एल्गोरिदम नहीं माना जाता है। उन्हें इस तरह संदर्भित करने से गलतफहमी पैदा हो सकती है।
बी। संकलन-समय बनाम रन-टाइम त्रुटियाँ:
इस गाइड में प्रस्तुत कारणों और समाधान विधियों को समझकर, आप प्रभावी ढंग से काम करते समय "क्लास के लिए कोई डिफ़ॉल्ट कंस्ट्रक्टर मौजूद नहीं है" त्रुटियों से निपट सकते हैं। सी कक्षाएं।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3