Avatar ·

C++ में mutable कीवर्ड की आवश्यकता क्यों है? केवल const-मेथड्स के लिए?

सभी को नमस्कार! मैं C++ सीख रहा हूँ और मुझे `mutable` कीवर्ड मिला। ट्यूटोरियल में लिखा है कि यह `const`-मेथड्स में भी क्लास के member को बदलने की अनुमति देता है। लेकिन मुझे यह अजीब लगता है — एक मेथड में जो const के रूप में चिह्नित है, कुछ भी क्यों बदलें? क्या यह constancy के मूल विचार का उल्लंघन नहीं करता?\n\nयहाँ एक उदाहरण है जो मैंने लिखा:\n\n```cpp\nclass Counter {\nprivate:\n mutable int accessCount = 0;\n int value = 0;\npublic:\n int getValue() const {\n accessCount++; // mutable के कारण काम करता है\n return value;\n }\n int getAccessCount() const {\n return accessCount;\n }\n};\n```\n\nमैं समझता हूँ कि `accessCount` getter के कॉल्स की गिनती है। लेकिन क्या `getValue()` मेथड से `const` हटा देना बेहतर नहीं होगा? या `const_cast` का उपयोग करना? मुझे लगता है कि `mu