मुझे नहीं लगता कि ऑपरेटर बनाने & निजी ऐसा करने जा रहा है, क्या ऐसा करने का एक वैध तरीका है।
नहीं, क्योंकि &
आप पास-बाय-रेफरेंस के लिए फ़ंक्शन हस्ताक्षर में उपयोग करते हैं, ऑपरेटर नहीं है। आप ऑपरेटर (यूनरी) या bitwise- और ऑपरेटर (बाइनरी) के पते के बारे में बात कर रहे हैं। तो पास-दर-संदर्भ के साथ इसका कोई लेना-देना नहीं है।
के प्रकार के लिए पास-बाय-रेफरेंस को अस्वीकार करने का कोई तरीका नहीं है।
मुझे शक है आपकी प्रेरणा काफी मजबूत यह करने के लिए है, और आप गुजर तंत्र की एक बुरा समझ है दिखाई देते हैं:
किसी भी समारोह संदर्भ द्वारा इसे प्राप्त करने के प्रयास करता है, मुझे यह पसंद है देने के लिए होगा एक संकलन त्रुटि (आदर्श) या एक रन टाइम त्रुटि।
कोई फ़ंक्शन संदर्भ या पैरामीटर द्वारा पैरामीटर पास करता है। यह घोषणा के द्वारा तय किया गया है, और मुझे लगता है कि आपका भ्रम यहां से पैदा होता है। उदाहरण के लिए:
void foo(X x);
पैरामीटर x
मूल्य से लेता है। संदर्भ द्वारा इसे पारित करने का कोई तरीका नहीं है। बिल्कुल नहीं। इसी तरह:
void foo(X& x)
संदर्भ द्वारा इसे लेता है, और यह हमेशा होगा।
स्रोत
2012-11-05 16:27:22
उचित प्रश्न लेकिन संभावना है कि यदि आप ऐसा करना चाहते हैं तो यह खराब डिजाइन का संकेत है। यदि इस ऑब्जेक्ट का उपयोग पूरे समय किया जाता है तो यह आपको एक बड़े कार्य को फैक्टर करने से रोक देगा। – djechlin
दिलचस्प विचार, लेकिन यह मूल रूप से उस तरह के ऑब्जेक्ट को पॉइंटर को अस्वीकार करने जैसा ही होगा, और यह मेरे लिए बहुत अनुचित लगता है। –
@ डैनएफ पॉइंटर्स को अस्वीकार करने से मुझे लगता है कि यह आसान होगा। 'और' निजी बनाना इसे करना चाहिए। – san