मेरा सी ++ शिक्षक सोचता है कि * मानक सी ++ में * ऑपरेटर "पहले से अधिभारित" है, क्योंकि इसका संदर्भ संदर्भ के आधार पर संकेत या गुणा का मतलब हो सकता है।क्या सी ++ * ऑपरेटर "पहले ही अधिभारित है?"
वास्तव में, कई सी ++ (और सी) ऑपरेटरों को पहले से ही अतिभारित रहे हैं: वह सी ++ प्राइमर प्लस, जिसमें कहा गया है से मिला है। उदाहरण के लिए, * ऑपरेटर, जब किसी पते पर लागू होता है, उस पते पर संग्रहीत मूल्य उत्पन्न करता है। लेकिन * दो संख्याओं को लागू करने से मूल्यों का उत्पाद मिलता है। सी ++ यह तय करने के लिए कि कौन सी कार्रवाई करने के लिए ऑपरेटरों की संख्या और प्रकार का उपयोग करता है। (पृष्ठ 502, 5 एड)
कम से कम एक अन्य पाठ्यपुस्तक ज्यादा एक ही कहते हैं। जहां तक मैं कह सकता हूं, यह सच नहीं है; यूनरी * बाइनरी * से एक अलग ऑपरेटर है, और जिस तंत्र द्वारा संकलक उन्हें असंबद्ध करता है उसके पास ऑपरेटर अधिभार के साथ कुछ लेना देना नहीं है।
कौन सही है?
आप सही हैं। एक मायने में, यह कहना उचित है कि बिल्टिन ऑपरेटर पहले से ही अपने तर्कों के आधार पर बहुलक रूप से कार्य करते हैं। यह स्थिर polymorphism – sehe
ध्यान दें कि दो '*' ऑपरेटरों (जो अंग्रेजी अर्थ में "ओवरलोडिंग" है, लेकिन सी ++ भावना में नहीं) के अलावा, अंतर्निहित बाइनरी '*' वास्तव में सी ++ भावना में भी अधिभारित है यह विभिन्न प्रकारों पर लागू होता है - 'int', 'double' आदि - विभिन्न प्रभावों के साथ। ऑपरेटर ओवरलोड रिज़ॉल्यूशन के प्रयोजनों के लिए प्रभावी ओवरलोड का सेट मानक में 13.6/12 पर परिभाषित किया गया है।इसी प्रकार प्रत्येक सूचक प्रकार (13.6/6) और फ़ंक्शन पॉइंटर प्रकार (/ 7) के लिए प्रभावी रूप से असाइन '*' प्रभावी रूप से अधिभारित होता है। –