Avatar ·

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

सभी को नमस्ते! मैं C++ सीख रहा हूँ और मुझे `mutable` कीवर्ड मिला। ट्यूटोरियल्स में लिखा है कि यह `const`-मेथड्स में भी क्लास के मेंबर को बदलने की अनुमति देता है। लेकिन मुझे यह अजीब लगता है — ऐसे मेथड में कुछ भी क्यों बदलें जो कॉन्स्टेंट के रूप में चिह्नित है? क्या यह कॉन्स्टेंटनेस के मूल विचार का उल्लंघन नहीं करता?\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` गेट्टर के कॉल्स की गिनती है। लेकिन क्या `getValue()` मेथड से `const` हटा देना बेहतर नहीं होगा? या `const_cast` का उपयोग करना? मुझे लगता है कि `mu