c++ - Returning a reference from a constant function -


  # शामिल "iostream" #include "vector" class ABC {}; क्लास विटेस्ट {std :: vector & lt; एबीसी & gt; vec; सार्वजनिक: std :: vector & lt; एबीसी & gt; & Amp; GetVec () कॉन्स्ट {// यहां त्रुटियों को वापस भेजना; }};  

कंट फिक्स को निकालता है, क्या ऐसा नहीं है कि getVec एक निरंतर विधि है तो यह क्यों अनुमति नहीं है?

आप शायद क्या करना चाहिए एक const संदर्भ वापस कर रहा है।

const std :: vector & amp; GetVec () const {return vec; }

इसकी अनुमति नहीं है क्योंकि आपने कहा है कि GetVec एक const विधि है, जिसका अर्थ है कि विधि यह ऑब्जेक्ट किसी भी तरह से नहीं बदलनी चाहिए। गैर-कॉन्स्ट संदर्भ लौटने से संभवतः उसके ऑब्जेक्ट को बदलना होगा, इसलिए कंपाइलर इसे अनुमति नहीं देता है।


Comments