मैं डेल्फी के लिए नया हूं, और मैं कुछ परीक्षण चला रहा हूं यह देखने के लिए कि ऑब्जेक्ट चर और स्टैक चर को डिफ़ॉल्ट रूप से आरंभ किया गया है:
TInstanceVariables = class
fBoolean: boolean; // always starts off as false
fInteger: integer; // always starts off as zero
fObject: TObject; // always starts off as nil
end;
यह वह व्यवहार है जिसका उपयोग मैं अन्य भाषाओं से कर रहा हूं, लेकिन मैं सोच रहा हूं कि क्या डेल्फी में इस पर भरोसा करना सुरक्षित है? उदाहरण के लिए, मैं सोच रहा हूं कि क्या यह संकलक सेटिंग पर निर्भर हो सकता है, या शायद अलग-अलग मशीनों पर अलग-अलग काम करता है। क्या वस्तुओं के लिए डिफ़ॉल्ट प्रारंभिक मानों पर भरोसा करना सामान्य है, या क्या आप स्पष्ट रूप से कंस्ट्रक्टर में सभी उदाहरण चर सेट करते हैं?
जैसा कि स्टैक (प्रक्रिया-स्तर) चर के लिए, मेरे परीक्षण दिखा रहे हैं कि यूनिटाइज्ड बूलियन्स सच हैं, यूनिटाइज्ड पूर्णांक 2129993264 हैं, और असिंचित वस्तुएं केवल अमान्य पॉइंटर्स हैं (अर्थात शून्य नहीं)। मैं अनुमान लगा रहा हूं कि उन्हें एक्सेस करने से पहले हमेशा प्रक्रिया-स्तरीय चर निर्धारित करना है?