म्यूटेबल डेटा सदस्य वे सदस्य होते हैं जिनके मान रनटाइम में बदले जा सकते हैं, भले ही ऑब्जेक्ट स्थिर प्रकार का हो। यह स्थिरांक के ठीक विपरीत है।
कभी-कभी तर्क की आवश्यकता केवल एक या दो डेटा सदस्य को चर के रूप में और दूसरे को डेटा को संभालने के लिए स्थिरांक के रूप में उपयोग करने के लिए होती है। उस स्थिति में, कक्षाओं को प्रबंधित करने के लिए परिवर्तनशीलता बहुत उपयोगी अवधारणा है।
उदाहरण
#include <iostream> using namespace std; code class Test { public: int a; mutable int b; Test(int x=0, int y=0) { a=x; b=y; } void seta(int x=0) { a = x; } void setb(int y=0) { b = y; } void disp() { cout<<endl<<"a: "<<a<<" b: "<<b<<endl; } }; int main() { const Test t(10,20); cout<<t.a<<" "<<t.b<<"\n"; // t.a=30; //Error occurs because a can not be changed, because object is constant. t.b=100; //b still can be changed, because b is mutable. cout<<t.a<<" "<<t.b<<"\n"; return 0; }