ตัว ระบุการเข้าถึง C++
ตัวระบุการเข้าถึง
ถึงตอนนี้ คุณค่อนข้างคุ้นเคยกับpublic
คำหลักที่ปรากฏในตัวอย่างชั้นเรียนทั้งหมดของเราแล้ว:
ตัวอย่าง
class MyClass { // The class
public: // Access specifier
// class members goes here
};
public
คีย์เวิร์ดเป็นตัวระบุการเข้าถึง
ตัวระบุการเข้าถึงกำหนดวิธีที่สมาชิก (แอตทริบิวต์และเมธอด) ของคลาสสามารถเข้าถึงได้ ในตัวอย่างข้างต้น สมาชิกคือpublic
- ซึ่งหมายความว่าสามารถเข้าถึงและแก้ไขได้จากภายนอกโค้ด
แต่ถ้าเราต้องการให้สมาชิกมีความเป็นส่วนตัวและซ่อนตัวจากโลกภายนอกล่ะ?
ใน C ++ มีตัวระบุการเข้าถึงสามตัว:
public
- สมาชิกสามารถเข้าถึงได้จากนอกชั้นเรียนprivate
- สมาชิกไม่สามารถเข้าถึง (หรือดู) จากนอกชั้นเรียนprotected
- สมาชิกไม่สามารถเข้าถึงได้จากภายนอกชั้นเรียน แต่สามารถเข้าถึงได้ในชั้นเรียนที่สืบทอดมา คุณจะได้เรียนรู้เพิ่มเติมเกี่ยวกับการสืบทอดในภายหลัง
ในตัวอย่างต่อไปนี้ เราแสดงให้เห็นความแตกต่างระหว่าง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
หมายเหตุ:เป็นไปได้ที่จะเข้าถึงสมาชิกส่วนตัวของคลาสโดยใช้วิธีการสาธารณะภายในคลาสเดียวกัน ดูบทต่อไป ( การ ห่อหุ้ม ) เกี่ยวกับวิธีการทำเช่นนี้
เคล็ดลับ:การประกาศแอตทริบิวต์คลาสของคุณเป็นแบบส่วนตัวถือเป็นวิธีปฏิบัติที่ดี (บ่อยเท่าที่คุณจะทำได้) วิธีนี้จะช่วยลดโอกาสที่ตัวคุณเอง (หรือคนอื่นๆ) จะทำให้โค้ดยุ่งเหยิง นี่ยังเป็นส่วนประกอบหลักของแนวคิดการห่อหุ้ม อีกด้วย ซึ่งคุณจะได้เรียนรู้เพิ่มเติมในบทต่อไป
หมายเหตุ:โดยค่าเริ่มต้น สมาชิกทุกคนในชั้นเรียนคือprivate
ถ้าคุณไม่ระบุตัวระบุการเข้าถึง:
ตัวอย่าง
class
MyClass {
int x; // Private attribute
int y; // Private attribute
};