2009-10-19 13 views
15

मुझे आश्चर्य है कि किस प्रकार के ऑपरेटर ओवरलोड संभव हैं (और डेल्फी के किस संस्करण के साथ)?डेल्फी समर्थन किस प्रकार के ऑपरेटर ओवरलोड करता है?

  • जोड़ें (लेफ्ट, राइट: प्रकार): Hallvard's great write-up on operator overloading के लिए धन्यवाद, मैं के बारे में पता
  • घटाना ('+' ऑपरेटर के लिए) प्रकार (वाम, अधिकार: प्रकार): प्रकार (के लिए ' - 'ऑपरेटर)
  • गुणा (लेफ्ट, राइट: प्रकार): प्रकार (के लिए' * 'ऑपरेटर)
  • फूट डालो (लेफ्ट, राइट: प्रकार): प्रकार (के लिए'/'ऑपरेटर)
  • अंतर्निहित (एवल्यू: टाइप): एक और टाइप और
  • लागू (एवल्यू: अन्य टाइप): टाइप (के लिए अंतर्निहित कार्य: एक: = ख)
  • स्पष्ट (Avalue: प्रकार): AnotherType और
  • स्पष्ट (Avalue: AnotherType): प्रकार ('डाले' की स्पष्ट assignmetns के लिए: एक: = प्रकार (ख)

हालांकि, जो मुझे नहीं पता वह '=', '< =', '<', '<>', '>' और '> =' ऑपरेटर के नाम हैं। क्या ये अस्तित्व में हैं, और डेल्फी संस्करण से मैं इनका उपयोग कैसे कर सकता हूं?

पुनश्च: मैं अभी भी इस समय डेल्फी 2009 का उपयोग, तो मैं एक और मजबूत उन्नयन तर्क होता है, तो 2010 इन ;-)

उत्तर

16

वास्तव में प्रदान करता है, मैं इस सवाल का जवाब यह करने के लिए अपने आप को पाया है, लेकिन के रूप में प्रश्न रखा मैं कल्पना कर सकता हूं कि लोग नियमित रूप से स्टैक ओवरफ्लो पर इस जानकारी की खोज करेंगे;

ऑपरेटर overloaders पर आधिकारिक विवरण यहां पाया जा सकता:

  • समान, '=' तुलना के लिए:: बराबर (एक: प्रकार http://docwiki.embarcadero.com/RADStudio/en/Operator_Overloading_(Delphi)

    मुख्य रूप से, लोगों को मैं खोज रहा था नामित कर रहे हैं ; बी: प्रकार): बूलियन;

  • '<>' के लिए नोटक्वाल: तुलनात्मक: ए: प्रकार; बी: प्रकार): बूलियन;
  • ग्रेटरथान, '>' तुलना के लिए: ग्रेटरथान (ए: टाइप; बी: टाइप) बूलियन;
  • ग्रेटरथानऑरक्वाल, '> =' तुलना के लिए: ग्रेटर थानऑरक्वाल (ए: टाइप; बी: टाइप): परिणाम टाइप;
  • '<' के लिए LessThan, तुलना: LessThan (ए: प्रकार; बी: प्रकार): परिणाम टाइप;
  • '< =' तुलना के लिए LessThanOrEqual, तुलना: LessThanOrEqual (ए: प्रकार; बी: प्रकार): परिणाम टाइप;
+0

पृष्ठ ले जाया गया है [यहां] (http://docwiki.embarcadero.com/RADStudio/en/Operator_Overloading_ (डेल्फी)) – pritaeas

+0

@pritaeas: धन्यवाद, मैं लिंक अपडेट किया गया। – PatrickvL

9

मैंने कुछ कॉन्फ़्रेंस के दौरान दिए गए ऑपरेटर अधिभार के साथ शून्य प्रकारों पर एक सत्र के अपने notes online को रखा है।

इसमें अब ऑपरेटरों की एक तालिका, नाम और क्या काम/काम नहीं करता है। वर्डप्रेस ने शुरुआत में उस तालिका को विकृत कर दिया, लेकिन मैं इसे पुनर्स्थापित करने में कामयाब रहा।

आप full set of slides and source code demos भी डाउनलोड कर सकते हैं।

संक्षेप में:

  • प्रलेखन (यहां तक ​​कि DocWiki) पूरा नहीं हुआ है, और विश्वसनीय
  • ध्यान दें आप, बिटवाइज़ नहीं ऑपरेटर को ओवरलोड नहीं कर सकते हैं के रूप में BitwiseNot संकलक द्वारा समर्थित नहीं है। आपको लॉजिकल ऑपरेटर को स्थिरता में अधिभारित करना होगा।
  • अधिभार ऑपरेटरों जोड़ो में जहां लागू
  • मौजूदा ऑपरेटरों
  • बहुत करते समय सावधान रहें निहित ऑपरेटरों को लागू करने

आशा यह आप में मदद करता है के प्रति सचेत रहें। अगर आपको अधिक जानकारी चाहिए तो मुझे बताएं: मैंने ऑपरेटर ओवरलोडिंग के साथ काफी उत्पादन कार्य किया है।

--jeroen

+0

धन्यवाद - अब आप इसका जिक्र करते हैं, मैंने आपकी स्लाइड पहले देखी है। सब कुछ एक अच्छा अवलोकन में। यह एक दयालु बात है कि डेल्फी समुदाय को इसे दस्तावेज करना है; मैं इसके बजाय कोडगियर/एम्बरकेडेरो से दस्तावेज़ीकरण का एक और अधिक गहन टुकड़ा की उम्मीद करता। – PatrickvL

+0

मुझे पहले अपनी सामग्री के लोड को पाने के लिए समय ढूंढना होगा, फिर सही विकी अपडेट करें। –

+0

थोड़ा सा नहीं 'AnInteger XOR -1' है – Johan

संबंधित मुद्दे