मुझे एक कक्षा मिली है जिसने असाइन operator&
ओवरलोड किया है। उस प्रकार की वस्तुओं को new
का उपयोग करके बनाया गया था, इसलिए चर का पता सुलभ था लेकिन अब मुझे स्थिर वस्तु का उपयोग करने की आवश्यकता है। क्या इसका पता प्राप्त करना संभव है?सी ++ ऑपरेटर के बिना वैरिएबल का पता प्राप्त करें और
23
A
उत्तर
31
सी ++ 11 के बाद से, आप समारोह std::addressof
37
में उपयोग कर सकते हैं सी ++ 11 या बाद में, std::addressof(object)
, <memory>
हैडर द्वारा घोषित।
ऐतिहासिक रूप से, यह अधिक अजीब था, खासकर यदि आप const
और volatile
क्वालीफायर से सही तरीके से निपटना चाहते थे। एक addressof
की बूस्ट के कार्यान्वयन के द्वारा प्रयोग किया संभावना है
reinterpret_cast<T*>(
&const_cast<char&>(
reinterpret_cast<const volatile char &>(object)))
पहले qualifers को जोड़ते समय तो char&
को बदलने कि reinterpret_cast
काम करेगा लेकिन object
योग्य थे, फिर उन्हें हटा दें ताकि अंतिम रूपांतरण काम करेगा; फिर अंत में पता लेना और सही प्रकार में परिवर्तित करना। जब तक T
में object
(जो object
से निकाले गए टेम्पलेट पैरामीटर के रूप में होगा) के समान क्वालीफायर हैं, परिणामी सूचक सही ढंग से योग्य होंगे।
संबंधित मुद्दे
- 1. सी निजी वैरिएबल प्राप्त करें और सेट करें विधि
- 2. सी # वैरिएबल नाम से संपत्ति प्राप्त करें और सेट करें
- 3. ऑपरेटर [] सी ++ प्राप्त करें/सेट करें
- 4. सी # कचरा बनाने के बिना बफर में वैरिएबल कॉपी करें?
- 5. स्थानीय वैरिएबल का नाम प्राप्त करें
- 6. PHP वैरिएबल में पता, Google मानचित्र जावास्क्रिप्ट के बिना एम्बेडिंग?
- 7. सी ++ ऑपरेटर परिभाषा के बिना विफल
- 8. रूबी वैरिएबल स्टोर मूल्य या पता करें?
- 9. सी ++ ऑपरेटर + और ऑपरेटर + = अधिभार
- 10. typedef और ऑपरेटर सी ++
- 11. सी # में vtable पता प्राप्त करें?
- 12. सी # यूडीपी सॉकेट: रिसीवर पता प्राप्त करें
- 13. स्टेटिक वैरिएबल और थ्रेड्स (सी)
- 14. उद्देश्य-सी: राउटर पता कैसे प्राप्त करें?
- 15. हास्केल - बिना "!!" के nth तत्व प्राप्त करें
- 16. संपत्ति के साथ और बिना {प्राप्त; सेट; }
- 17. सी # और ऑपरेटर नल जांच
- 18. सी ++ तारांकन और ब्रैकेट ऑपरेटर
- 19. सी ++ असाइनमेंट ऑपरेटर के बजाय घुंघराले ब्रेसिज़ के साथ स्कोप्ड वैरिएबल की घोषणा और तत्कालता
- 20. किसी उद्देश्य-सी प्रॉपर्टी का पता प्राप्त करें (जो एक सी संरचना है)
- 21. डॉट्स के बिना एक वैरिएबल (parent.child.grandchild) का पोलैंड एक्सेस करें और ब्रैकेट्स की एक जोड़ी
- 22. सी # में ++ मैं ऑपरेटर अंतर और सी ++
- 23. ऑपरेटर = सी ++
- 24. आकार का ऑपरेटर सी #
- 25. एरलांग - ग्लोबल वैरिएबल .. हाँ मुझे पता है, मुझे पता है
- 26. पायथन में अपवाद कैसे प्राप्त करें और अपवाद का संदर्भ प्राप्त करें, प्रकार जानने के बिना?
- 27. गैर मानक पोर्ट के बिना मूल यूआरएल प्राप्त करें (सी #)
- 28. पैकेज के बिना कक्षा का नाम कैसे प्राप्त करें?
- 29. निहित रूपांतरणों के बिना संकलन समय पर ऑपरेटर का पता लगाएं
- 30. सी ++ वैरिएबल प्रकार
* असाइन * ऑपरेटर और वास्तव में अधिभारित है? –
@ फ्रेडलार्सन मैं भी आश्चर्यचकित था: http://en.wikipedia.org/wiki/Operators_in_C_and_C%2B%2B#Member_and_pointer_operators – KugBuBu
@ कुगबुबु: हाँ, मैंने देखा कि इसे ओवरलोड किया जा सकता है। लेकिन सवाल इस बात पर स्पष्ट नहीं है कि वास्तव में इस मामले में अधिभारित है। मैंने कक्षा अधिभार बाइनरी 'ऑपरेटर' देखा है (कहें, स्ट्रिंग concatenation के लिए)। यूनरी ऑपरेटर को अधिभारित करना असामान्य है। –