এখানে আমরা C++ এ মিউটেবল কিওয়ার্ড কি তা দেখব। মিউটেবল হল C++ এর স্টোরেজ ক্লাসের একটি। মিউটেবল ডেটা মেম্বার হল সেই ধরনের সদস্য, যা সবসময় পরিবর্তন করা যায়। অবজেক্টটি const টাইপের হলেও। যখন আমাদের শুধুমাত্র একটি সদস্য পরিবর্তনশীল এবং অন্যটি ধ্রুবক হিসাবে প্রয়োজন, তখন আমরা তাদের পরিবর্তনযোগ্য করতে পারি। আসুন ধারণা পেতে একটি উদাহরণ দেখি।
উদাহরণ
#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)