C++ Access Specifiers
Access Specifiers
ယခုအချိန်တွင်၊ public
ကျွန်ုပ်တို့၏အတန်းနမူနာများအားလုံးတွင် ပါရှိသည့် အဓိကစကားလုံးနှင့် သင်အတော်လေးရင်းနှီးနေပြီဖြစ်သည်-
ဥပမာ
class MyClass { // The class
public: // Access specifier
// class members goes here
};
public
သော့ချက်စာလုံးသည် အသုံးပြု ခွင့် သတ်မှတ်ပေးသူဖြစ်သည်။
Access Specifier များသည် အတန်းတစ်ခု၏ အဖွဲ့ဝင်များ (အရည်အချင်းများနှင့် နည်းလမ်းများ) ကို မည်သို့ဝင်ရောက်နိုင်သည်ကို သတ်မှတ်ဖော်ပြသည်။ အထက်ဖော်ပြပါ ဥပမာတွင်၊ အဖွဲ့ဝင်များသည် public
- ဆိုလိုသည်မှာ ၎င်းတို့သည် ကုဒ်ပြင်ပမှ ဝင်ရောက်၍ ပြုပြင်နိုင်သည်။
သို့သော်၊ ကျွန်ုပ်တို့သည် အဖွဲ့ဝင်များကို ပြင်ပကမ္ဘာနှင့် လျှို့ဝှက်ထားစေလိုလျှင်ကော။
C++ တွင်၊ access specifier သုံးခုရှိသည်။
public
- အဖွဲ့ဝင်များသည် အတန်းပြင်ပမှ ဝင်ရောက်နိုင်သည်။private
- အဖွဲ့ဝင်များကို အတန်းပြင်ပမှ ဝင်ရောက်ကြည့်ရှုခြင်းမပြုနိုင်ပါ။protected
- အဖွဲ့ဝင်များကို အတန်းပြင်ပမှ ဝင်ရောက်၍မရသော်လည်း၊ ၎င်းတို့ကို အမွေဆက်ခံထားသော အတန်းများတွင် ဝင်ရောက်ကြည့်ရှုနိုင်ပါသည်။ Inheritance အကြောင်းကို နောက်ပိုင်းမှာ သင်ပိုမိုလေ့လာနိုင်ပါလိမ့်မယ် ။
public
အောက်ဖော်ပြပါ ဥပမာတွင်၊ အဖွဲ့ဝင်များ နှင့် အဖွဲ့ဝင်များ ကြား ခြားနားချက်များကို သရုပ်ပြသည် private
-
ဥပမာ
class
MyClass {
public: // Public access
specifier
int x; // Public attribute
private: // Private access specifier
int y; // Private attribute
};
int main() {
MyClass
myObj;
myObj.x = 25; // Allowed (public)
myObj.y = 50; //
Not allowed (private)
return 0;
}
သီးသန့်အဖွဲ့ဝင်တစ်ဦးကို ဝင်ရောက်ရန် ကြိုးစားပါက အမှားအယွင်းတစ်ခု ဖြစ်ပေါ်သည်-
error: y is private
မှတ်ချက်- တူညီသောအတန်းအတွင်းရှိ အများသူငှာနည်းလမ်းကို အသုံးပြု၍ အတန်းတစ်ခု၏ သီးသန့်အဖွဲ့ဝင်များကို ဝင်ရောက်ကြည့်ရှုနိုင်သည် ။ ၎င်းကိုပြုလုပ်နည်းကို နောက်အခန်း ( Encapsulation ) တွင်ကြည့်ပါ။
အကြံပြုချက်- သင်၏အတန်းရည်ညွှန်းချက်များကို သီးသန့်အဖြစ် (တတ်နိုင်သမျှ မကြာခဏ) ကြေညာခြင်းသည် ကောင်းသောအလေ့အကျင့်ဟု ယူဆပါသည်။ ၎င်းသည် ကုဒ်ကို ရှုပ်စေရန် သင်ကိုယ်တိုင် (သို့မဟုတ် အခြားသူများ) ဖြစ်နိုင်ခြေကို လျှော့ချပေးမည်ဖြစ်သည်။ ၎င်းသည် Encapsulation concept ၏ အဓိကပါဝင်ပစ္စည်းလည်းဖြစ်သည်၊ နောက်အခန်းတွင် သင်ပိုမိုလေ့လာနိုင်မည်ဖြစ်သည်။
မှတ်ချက်- ပုံမှန်အားဖြင့်၊ အတန်းတစ်ခု၏ အဖွဲ့ဝင်အားလုံးသည် private
ဝင်ရောက်ခွင့်ဆိုင်ရာ သတ်မှတ်ချက်ကို သင်မသတ်မှတ်ပါက၊
ဥပမာ
class
MyClass {
int x; // Private attribute
int y; // Private attribute
};