मेरे होमवर्क में, मुझे कक्षा संदेश डिज़ाइन करना होगा; अन्य विशेषताओं के बीच, इसमें "प्राथमिकता" विशेषता है (मुख्य लक्ष्य प्राथमिकता कतार लागू करना है)।एक ही कक्षा में ऑपरेटर <और ऑपरेटर> को ओवरलोड करना
कंटेनर के रूप में मुझे यह जांचना होगा कि एक वस्तु दूसरे से अधिक है, तो मैंने ऑपरेटर '>' अधिभारित किया है।
अगर मैं ऑपरेटर '>' ओवरलोड, मैं तर्क के लिए (स्थिरांक संदेश &, स्थिरांक संदेश & ऑपरेटर '<' ओवरलोड चाहिए: अब, मैं इसके बारे में कुछ सामान्य प्रश्नों ...
प्रश्न एक है)?
मेरे राय है कि> दोनों ओवरलोडिंग और < और कोड में इसका उपयोग करने में कोई त्रुटि उत्पन्न होगा है:
if(message1 > message2)
{ ... }
(निम्नलिखित कोड message1 वस्तु के लिए कहता है क्या ऑपरेटर>, या ऑपरेटर < आपत्ति message2?)
लेकिन, क्या हुआ अगर मैं इस तरह ऑपरेटर का उपयोग करें:
if(message1 < message2)
{ ... }
?
friend bool operator>(const Message& m1, const Message& m2)
यह सदस्य समारोह के रूप में घोषित किया जा करने की आवश्यकता है:
ऑपरेटर> दोस्त समारोह के रूप में घोषित किया जाता है?
धन्यवाद।
धन्यवाद, मैंने कहीं पढ़ा है कि अगर मैं एक संबंध आपरेशन ओवरलोड, यह उन सभी को ओवरलोड तर्कसंगत लगता है। –
और मित्र/सदस्य उत्तर के बारे में धन्यवाद। मुझे पता है तुम्हारा क्या मतलब है :)। –
यह उत्तर यह भी इंगित करना चाहिए कि अधिकांश रिलेशनल ऑपरेटरों को कुछ हद तक ऑपरेटरों के मामले में वर्णित किया जा सकता है, आमतौर पर '<' और '=='।उदाहरण के लिए, 'ऑपरेटर> =' लिखा जा सकता है: 'bool ऑपरेटर> = (स्थिरांक टी एंड एल, स्थिरांक टी एंड आर) {वापसी (एल
greyfade