जब आप किसी बेस क्लास में क्लास कन्स्ट्रक्टर को परिभाषित करते हैं (यानी कुछ स्थिर वर्ग चर सेट करने के लिए), क्या यह क्लास कन्स्ट्रक्टर को व्युत्पन्न कक्षा में ओवरराइड करना संभव है और विरासत में के साथ कन्स्ट्रक्टर को अपने पदानुक्रमित माता-पिता से कॉल करना संभव है?क्या आप कक्षा के कन्स्ट्रक्टर को ओवरराइड कर सकते हैं और विरासत में उपयोग कर सकते हैं?
उदाहरण:
TBaseclass = class(TObject)
public
class constructor ClassCreate; virtual;
end;
TOtherClass = class(TBaseClass)
public
class constructor ClassCreate; override;
end;
**implementation**
class constructor TBaseClass.ClassCreate;
begin
//do some baseclass stuff
end;
class constructor TotherClass.ClassCreate;
begin
inherited;
//do some other stuff
end;
+1 "कंपाइलर आवेषण स्वचालित रूप से उन्हें कॉल करता है कि किसी प्रोग्राम में कौन से वर्गों का उपयोग किया जाता है"। क्लास कन्स्ट्रक्टर मुख्य रूप से स्मार्टलिंकिंग को और अधिक कुशल बनाते हैं। (क्योंकि संबंधित वर्रों का प्रारंभ वर्ग के उपयोग पर सशर्त हो जाता है) –
नहीं, @ मारजन। यह एक अयोग्य वोट नहीं था। यह किसी ऐसे व्यक्ति द्वारा मतदान था जिसने "कन्स्ट्रक्टर" के लिए "क्लास कन्स्ट्रक्टर" को गलत समझा और फिर मेरे और डेविड के दावों को अपवाद दिया कि वे आभासी नहीं हो सकते हैं और यदि वे कर सकते हैं तो इसका कोई फायदा नहीं होगा। पर्याप्त प्रतिष्ठा वाले लोग "विवादित" उत्तर देख सकते हैं जिसे बाद में हटा दिया गया था क्योंकि मैंने शब्दावली में गलतफहमी की ओर इशारा किया था। वोटों को समझाते हुए टिप्पणियां पहले ही हटा दी गई हैं। –
काफी ईमानदार होने के लिए, उत्तर का वास्तविक विवरण मेरे सिर पर रास्ता है, क्योंकि सिर्फ मुझे ऐसा कुछ नहीं करना पड़ा है। लेकिन रॉब, +1, आप वास्तव में स्पष्टीकरण का एक मास्टर हैं। –