Ngôn ngữ lập trình C++
Tin Học Cho Mọi Người • 49
QUYỀN TRUY CẬP C++ ACCESS SPECIFIERS
1. Quyền truy cập
Bây giờ, bạn đã khá quen thuộc với từ khóa public (công khai) xuất hiện trong tất cả các ví dụ
về class của chúng ta.
Ví dụ: #include
using namespace std;
class hocvien { public: string ten; int tuoi; string lop; };
int main() {
hocvien hvA; // tạo object của class hocvien
hvA.ten = "Dong"; hvA.tuoi = 12; hvA.lop = "8A";
cout << hvA.ten << ": " << hvA.tuoi << " tuoi, lop " << hvA.lop ;
return 0; }
Kết quả: Dong: 12 tuoi, lop 8A
Từ khóa public (công khai) là mã xác định quyền truy cập (access specifier). Quyền truy cập ấn
định cách truy cập các members (thành viên, gồm thuộc tính và phương thức) của một class.
Trong ví dụ trên, các members đều là public - có nghĩa là chúng có thể được truy cập và sửa đổi
từ bên ngoài class.
Tuy nhiên, điều gì sẽ xảy ra nếu ta muốn các thành viên được riêng tư và ẩn mình khỏi thế giới
bên ngoài? Trong C++, có ba quyền truy cập:
- public - thành viên có thể được truy cập từ bên ngoài class
- private - thành viên không thể truy cập (hoặc xem) từ bên ngoài class
- protected - thành viên không thể được truy cập từ bên ngoài class, tuy nhiên, chúng có thể
được truy cập trong các class được thừa kế (inherited classes). Ta sẽ tìm hiểu thêm về thừa
kế ở phần sau.
Lưu ý: Theo mặc định, tất cả các member của một class đều là private (riêng tư) nếu không được
chỉ định quyền truy cập:
Ví dụ: #include
using namespace std;
class hocvien { string ten= "Dong"; int tuoi = 12; string lop = "8A"; };
int main() { hocvien hvA; cout << "we can't do anything"; return 0; }
Kết quả: we can't do anything
Hai ví dụ sau đây thể hiện sự khác biệt giữa các thành viên public và private: