PDA

View Full Version : سوال: کلاس ذخیره سازی mutable چیست؟



asdasd123123
چهارشنبه 18 دی 1392, 14:17 عصر
کلاس ذخیره سازی mutable چیست؟ و نحوه ی بکار گیری آن را در یک مثال بگویید لطفا.

کامبیز اسدزاده
چهارشنبه 18 دی 1392, 17:47 عصر
كلاس ذخيره mutable تنها روي اعضاي داده اي يك كلاس مي تواند اعمال شود و باعث مي شود اين اعضا حتي اگر در كلاس به صورت const تعريف شده اند قابل تغيير باشند.

این مثال رو ببینید : در این کد کامپایلر اجازه نمیدهد مقدار 100 به MyVariable.y نسبت داده شود.

دلیل : int y; به صورت یک ثابت تعریف شده.
ولی حال در MyVariable.x = 100; مشکلی نداریم زیر mutable int x; به صورت mutable یعنی تغییر پذیر تعریف شده است.



class MyClass {
public:
MyClass() : x(1), y(2) { };
mutable int x;
int y;
};
int main() {
const MyClass MyVariable;
MyVariable.x = 100;
// MyVariable.y = 100; ERROR
}