I have a variable in C++ that says its undefined, when clearly defined in my constructor. C++ -
कन्स्ट्रक्टर यहां है:
जब मैं अपना setLeft ()
फ़ंक्शन घोषित करता हूं , यह मुझे बताता है m_pLeft
परिभाषित नहीं है मैंने इसे पूरे स्थान पर स्थानांतरित करने की कोशिश की है और यह कहने के लिए नहीं मिल सकता कि यह अपरिभाषित के अलावा कुछ भी है।
सेट लेफ्ट को शून्य सेट-लेफ्ट (BookRecord * leftpointer) के रूप में परिभाषित किया गया है {* m_pLeft = * leftpointer; }
#pragma एक बार कक्षा बुकरकार्ड {निजी: char m_sName [100]; // प्रत्येक पुस्तक के लिए अनन्य नाम लंबे समय से एम_लस्टॉक न्यूज़; // एक स्टॉक नंबर, एक बारकोड int m_iClassification के समान; // कैसे एक किताब को वर्गीकृत किया जाना चाहिए, एक डेवी दशमलव प्रणाली डबल m_dCost के समान; // किताब की कीमत m_iCount; // पुस्तक में कितने किताबें हैं BookRecord * m_pLeft; // ट्री के लिए वाम सूचक; BookRecord * m_pRight; // दाहिने सूचक पेड़ से सार्वजनिक: BookRecord (शून्य); बुक रेकॉर्ड (चार * नाम, लंबी एस एन, इंट सीएल, डबल कॉस्ट); ~ BookRecord (); शून्य getName (चार * नाम); शून्य सेटनाम (चार * स्नैम); लम्बे मिलस्टॉक न्यूम (); शून्य सेटस्टॉक न्यूम (लम्बी स्न); शून्य getClassification (इंट एण्डसीएल); शून्य सेट क्लासिफिकेशन (इंट सीएल); डबल getCost (); शून्य सेटकास्ट (डबल सी); Int getNumberInstock (); शून्य सेटनंबरइनस्टॉक (इंट गणना); शून्य प्रिंट रेकार्ड (); BookRecord getLeft (); BookRecord getRight (); शून्य सेट लिफ्ट (बुकरकॉर्ड * बाउपइन्टर); शून्य सेटराइट (बुकरकॉर्ड * राइटपॉन्टर); };
जब मैं अपना
setLeft ()
घोषित करता हूं फ़ंक्शन, यह मुझे बताता हैm_pLeft
परिभाषित नहीं है।
आपको जो त्रुटि दिखाई देती है वह declaration के SetLeft ()
सदस्य फ़ंक्शन, लेकिन इसकी परिभाषा से (घोषणा m_pLeft
संदर्भित नहीं है):
// यह गलत है - यह शून्य सेट-लेफ्ट (BookRecord * leftpointer) को संकलित नहीं करेगा {m_pLeft = leftpointer; }
इस तरह की परिभाषा के साथ समस्या यह है कि कंपाइलर एक नि: शुल्क कार्य की तरह व्यवहार करता है, इसलिए m_pLeft
सदस्य दायरे में नहीं है आपको कम्पाइलर को यह बता देना होगा कि आप सदस्य फ़ंक्शन को परिभाषित कर रहे हैं, जैसे:
// यह शून्य BookRecord :: setLeft संकलित करेगा (BookRecord * leftpointer) {m_pLeft = leftpointer; }
Comments
Post a Comment