उदाहरण के लिए:जब कॉल एक ही गैर-कॉन्स संस्करण अधिभारित सदस्य फ़ंक्शन से होता है तो कॉन्स्ट क्वालीफायर को निकालना ठीक है?
struct B{};
struct A {
const B& findB() const { /* some non trivial code */ }
// B& findB() { /* the same non trivial code */ }
B& findB() {
const A& a = *this;
const B& b = a.findB();
return const_cast<B&>(b);
}
};
बात मैं लगातार findB और गैर निरंतर findB सदस्य समारोह के अंदर एक ही तर्क दोहराने से बचें करना चाहते हैं।
return const_cast<B&>(static_cast<const A*>(this)->findB());
दूर कास्टिंग const
सुरक्षित है केवल जब प्रश्न में वस्तु मूल रूप से घोषित नहीं किया गया था:
यह एक बहुत संदर्भ की तरह आप लगता है। –
पॉइंटर्स या प्रतियों का उपयोग करने में कोई बिंदु नहीं है यदि आवश्यक नहीं है – dchhetri