এখানে আমরা দেখব C++-এ mutable কীওয়ার্ড কী। mutable হলো C++-এ স্টোরেজ ক্লাসের একটি। Mutable ডেটা মেম্বার হলো সেই ধরনের মেম্বার, যা সবসময় পরিবর্তন করা যায়। এমনকি অবজেক্ট const টাইপের হলেও। যখন আমাদের শুধু একটি মেম্বার ভেরিয়েবল এবং বাকিগুলো কনস্ট্যান্ট দরকার, তখন আমরা সেগুলো mutable করতে পারি। একটি উদাহরণ দেখি।
উদাহরণ
#include <iostream> using namespace std; class MyClass{ int x; mutable int y; public: MyClass(int x=0, int y=0){ this->x = x; this->y = y; } void setx(int x=0){ this->x = x; } void sety(int y=0) const { //member function is constant, but data will be changed this->y = y; } void display() const{ cout<<endl<<"(x: "<<x<<" y: "<<y << ")"<<endl; } }; int main(){ const MyClass s(15,25); // A const object cout<<endl <<"Before Change: "; s.display(); s.setx(150); s.sety(250); cout<<endl<<"After Change: "; s.display(); }
আউটপুট
[Error] passing 'const MyClass' as 'this' argument of 'void MyClass::setx(int)' discards qualifiers [-fpermissive]
যদি আমরা প্রোগ্রামটি [ s.setx(150); ] লাইনটি রিমুভ করে রান করি, তবে −
আউটপুট
Before Change: (x: 15 y: 25) After Change: (x: 15 y: 250)