जबकि ऐसे ऑपरेटर हैं - **
पायथन में, मैं सोच रहा था कि जावा और सी ++ में एक भी क्यों नहीं है।
ऑपरेटर ओवरलोडिंग के साथ आप C ++ में परिभाषित की जाने वाली कक्षाओं के लिए एक बनाना आसान है (और मेरा मानना है कि ऐसी चीज जावा में भी संभव है), लेकिन जब आदिम प्रकार जैसे कि इंट, डबल और इतने पर बात करते हैं, तो आपको लाइब्रेरी का उपयोग करना होगा जैसे कार्य Math.power
(और आमतौर पर दोनों को दोगुना करना होता है)।
तो - आदिम प्रकारों के लिए ऐसे ऑपरेटर को परिभाषित क्यों नहीं किया जाता है?
^
ऑपरेटर की पूर्ववर्तीता घातांक की पूर्ववर्तीता से मेल नहीं खाती है। अभिव्यक्ति पर विचार करें a + b ^ c
। गणित में, घातांक पहले किया जाता है ( b ^ c
), फिर परिणामी शक्ति को जोड़ा जाता है a
। C ++ में, इसके अलावा पहले प्रदर्शन किया जाता है ( a + b
फिर) ^
ऑपरेटर के साथ प्रदर्शन किया जाता है c
। इसलिए भले ही आपने ^
ऑपरेटर को घातांक का अर्थ लगाने के लिए लागू किया हो , पूर्ववर्तीता सभी को आश्चर्यचकित कर देगी।
^
C ++ में XOR है। यह सलाह दी जाती है कि अधिभार ऑपरेटर को कोई अलग नहीं करना चाहिए जो एक आदिम डेटा प्रकार का उपयोग करता है।
++
ऑपरेटर या !
ऑपरेटर एट को ओवरलोड करता है । अल। मतलब प्रतिपादक। लेकिन आप वैसे भी नहीं कर सकते, क्योंकि आप जिन ऑपरेटरों के बारे में बात करते हैं, वे केवल एक तर्क को स्वीकार करते हैं; प्रतिपादक को दो तर्कों की आवश्यकता होती है।