Access modifier trong C++ – Freetuts

Bài học ngày hôm nay tất cả chúng ta sẽ khám phá về access modifier trong C + + ? Vậy access modifier trong C + + là gì ? Chúng ta sẽ cùng tìm hiểu và khám phá trong nội dung sau đây .

test php

banquyen png

Bài viết này được đăng tại

freetuts.net

, không được copy dưới mọi hình thức.

1. Access modifier trong C++

Access modifier trong C + + được sử dụng để tiến hành một tính năng quan trọng của Lập trình hướng đối tượng người dùng được gọi là Data Hiding .
Chúng ta cùng xem xét một ví dụ sau :
Giả sử công ty của tất cả chúng ta có tàng trữ thông tin của nhân viên cấp dưới như số điện thoai, email, năm sinh, phòng ban, chức vụ, khu vực văn phòng thao tác, … Tất cả nhân viên cấp dưới của công ty hoàn toàn có thể thấy những thông tin của nhau để tiện liên lạc trải qua website intrannet và có thông tin tài khoản để đăng nhập .Bài viết này được đăng tại [ không tính tiền tuts. net ]
Người ở ngoài công ty thì không có thông tin tài khoản và không hề truy vấn vào website intrannet để thấy thông tin của nhân viên cấp dưới trong công ty. Chúng ta gọi đó là hidding data .
Access modifier hay Access Specifier trong một lớp được sử dụng để đặt năng lực truy vấn của những thành viên lớp. Đó là, nó đặt ra 1 số ít hạn chế so với những thành viên lớp không được truy vấn trực tiếp bởi những hàm bên ngoài .
Trong C + + có hổ trợ 3 loại access modifier đó là :

  • Private
  • Public
  • Protected

Lưu ý : Nếu tất cả chúng ta không chỉ rõ bất kể access modifier cho thành viên của lớp, thì mặc định nó là Private .
Chúng ta sẽ cùng khám phá từng loại access modifier trong C + + nhé .

2. Private access modifier

Các thành viên lớp được khai báo là private thì chỉ hoàn toàn có thể được truy vấn bởi những hàm bên trong lớp. Chúng không được phép truy vấn trực tiếp bởi bất kể đối tượng người tiêu dùng hoặc hàm nào bên ngoài lớp .
Chỉ những hàm thành viên hoặc những hàm bạn mới được phép truy vấn những thành viên tài liệu riêng tư của một lớp. Hàm bạn là gì ? Chúng ta sẽ được tìm hiểu và khám phá trong bài tiếp theo .
Private Access modifier cũng là access modifier mặc định của lớp .

Ví dụ

Chúng ta cùng xem xét một ví dụ đơn thuần về private access modifier trong C + + như sau :

Ví dụ

#include 
using namespace std; 
  
class HinhTron {    
    private:  
        double banKinh; 
       
    public:     
        double  TinhDienTich() {   
            return 3.14*banKinh*banKinh; 
        } 
}; 
  
int main() {    

    HinhTron ht; 
    // Chung ta thu truy cap du lieu thanh vien private ben ngoai lop
    ht.banKinh = 3.5; 
      
    cout << "Dien tich cua hinh tron la:" << ht.TinhDienTich(); 
    
    return 0; 
} 

Và tác dụng sau khi thực thi chương trình trên như sau :

access p1 JPG

Chương trình trên báo lỗi biên dịch vì chúng ta đang truy cập dữ liệu thành viên bán kính ở dạng private.

Tuy nhiên, tất cả chúng ta hoàn toàn có thể truy vấn gián tiếp những thành viên tài liệu riêng tư của một lớp bằng cách sử dụng những hàm thành viên công khai minh bạch của lớp. Chúng ta cùng xem ví dụ sau đây hoàn toàn có thể truy vấn biến banKinh của lớp HinhTron trải qua hàm TinhBanKinh .

Ví dụ

#include 
using namespace std; 
  
class HinhTron {    
    private:  
        double banKinh; 
       
    public:     
        void TinhDienTich(double bk) {
            banKinh = bk;
            double dienTich = 3.14*banKinh*banKinh; 
            cout << "Ban kinh la: " << banKinh << endl;
            cout << "Dien tich la: " << dienTich << endl;
        } 
}; 
  
int main() {    

    HinhTron ht; 
    double banKinh = 2;
    ht.TinhDienTich(banKinh);
    
    return 0; 
}

Và hiệu quả sau khi thực thi chương trình trên là :

access p2 JPG

3. Public access modifier

Tất cả những thành viên lớp được khai báo dưới dạng public sẽ có sẵn cho toàn bộ mọi người. Các thành viên tài liệu và những hàm thành viên được khai báo public cũng hoàn toàn có thể được truy vấn bởi những lớp khác .
Các thành viên public của một lớp hoàn toàn có thể được truy vấn từ bất kỳ đâu trong chương trình bằng cách sử dụng toán tử truy vấn thành viên trực tiếp (. ) với đối tượng người tiêu dùng của lớp đó .

Ví dụ

Chúng ta cùng xem một ví dụ đơn thuần về public access modifier trong C + + như sau :

Ví dụ

#include 
using namespace std; 
  
class HinhTron {    
    public:
        double banKinh;
        double  TinhDienTich() {   
            return 3.14*banKinh*banKinh; 
        } 
}; 
  
int main() {    

    HinhTron ht; 
    ht.banKinh = 3.5; 
      
    cout << "Ban kinh cua hinh tron la: " << ht.banKinh << endl;  
    cout << "Dien tich cua hinh tron la:" << ht.TinhDienTich(); 
    
    return 0; 
}

Và hiệu quả sau khi thực thi chương trình trên như sau :

access p3 JPG

Trong ví dụ trên, thành viên tài liệu nửa đường kính là công khai minh bạch nên tất cả chúng ta được phép truy vấn bên ngoài lớp .

4. Protected access modifier

Protected access modifier tương tự như như private access modifier, sự độc lạ là thành viên lớp được khai báo là Protected không hề truy vấn bên ngoài lớp nhưng chúng hoàn toàn có thể được truy vấn bởi bất kể lớp con ( lớp dẫn xuất ) nào của lớp đó .

Ví dụ

Chúng ta sẽ cùng xem một ví dụ đơn thuần về protected access modifier trong C + + như sau :

Ví dụ

#include  
using namespace std; 
  
//Lop cha
class Cha {    
    protected: 
        string diaChi;
}; 
 
//Lop con  
class Con : public Cha 
{ 
    public: 
        void ThietLapDiaChi(string dc) { 
            diaChi = dc; 
        } 
          
        void HienThi() { 
            cout << "Dia chi la: " << diaChi << endl; 
        } 
}; 
  
int main() { 
    Con cn; 
    cn.ThietLapDiaChi("Thoi Binh, Ca Mau"); 
    cn.HienThi(); 
    return 0; 
} 

Và tác dụng sau khi thực thi chương trình trên như sau :

access p4 JPG

5. Kết luận

Như vậy là tất cả chúng ta đã tìm hiểu và khám phá xong về access modifier trong C + + là gì rồi. Các bạn biết cách bảo vệ tài liệu của mình như thế nào rồi đúng không .
Mình khuyến khích những bạn nên thiết lập private cho tài liệu thành viên, và thiết lập hàm dạng public để truy xuất tài liệu thành viên đó. Không nên truy xuất một cách trực tiếp tài liệu thành viên của lớp .
Mình sẽ kết thúc bài học kinh nghiệm ngày hôm nay ở đây. Bài tiếp theo tất cả chúng ta sẽ cùng khám phá về hàm bạn trong C + +. Các bạn nhớ theo dõi nhé .