Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Access modifier (bộ sửa đổi truy cập) trong C++

Data hiding (ẩn dữ liệu)** là đặc tính quan trọng của Lập trình hướng đối tượng (OOP), ngăn hàm truy cập trực tiếp biểu diễn nội bộ của class. Hạn chế truy cập thành viên class được chỉ định bằng các access modifier (bộ sửa đổi truy cập): public, private, protected trong thân class.

Mặc định, quyền truy cập của thành viên và class là private.

class Base {
public:
    // thành viên public
protected:
    // thành viên protected
private:
    // thành viên private
};

Chi tiết từng modifier

Modifier Khả năng truy cập
public Truy cập được từ bất kỳ đâu ngoài class (trong cùng chương trình). Có thể set/get giá trị biến public trực tiếp.
private Không thể truy cập hoặc xem từ ngoài class. Chỉ class đó và friend function/class mới truy cập được.
protected Tương tự private nhưng có thể truy cập trong class con (derived class).

Ví dụ minh họa

class Vehicle {
public:
    std::string brand;      // Truy cập 어디서나
protected:
    int year;               // Truy cập trong class và class con
private:
    std::string vin;        // Chỉ truy cập trong Vehicle
};

class Car : public Vehicle {
public:
    void printInfo() {
        std::cout << brand;  // OK - public
        std::cout << year;   // OK - protected (trong class con)
        // std::cout << vin;  // LỖI - private
    }
};

Best practice

  • Mặc định dùng private cho dữ liệu thành viên (encapsulation).
  • Cung cấp public getter/setter nếu cần truy cập từ bên ngoài.
  • Dùng protected khi thiết kế cho kế thừa (inheritance).