GiaoTrinhC++(27Jun21)

(Hoang2711) #1
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:

Free download pdf