5. Truy cập vào lớp trong lập trình C++ hướng đối tượng

Access specifiers (các từ khóa truy cập) là một phần quan trọng trong lập trình C++ hướng đối tượng. Chúng xác định cách các thành phần của một lớp (thuộc tính và phương thức) có thể được truy cập từ bên ngoài lớp. Có ba access specifiers chính trong C++:

  1. Public: Các thành phần được khai báo với access specifier public có thể được truy cập từ bên ngoài lớp thông qua các đối tượng của lớp.
  2. Private: Các thành phần được khai báo với access specifier private chỉ có thể được truy cập từ bên trong lớp. Các thành phần private không thể được truy cập trực tiếp từ bên ngoài lớp.
  3. Protected: Các thành phần được khai báo với access specifier protected có sự kết hợp của publicprivate. Chúng có thể được truy cập từ bên trong lớp và từ các lớp dẫn xuất (subclass).

Dưới đây là một ví dụ về cách sử dụng access specifiers trong C++:

cpp
#include <iostream>

class Person {
public:
    std::string name;  // Các thành phần public

    void displayName() {
        std::cout << "Tên: " << name << std::endl;
    }

private:
    int age;  // Các thành phần private

protected:
    double salary;  // Các thành phần protected
};

class Employee : public Person {
public:
    void setSalary(double s) {
        salary = s;  // Có thể truy cập từ lớp con
    }

    void displaySalary() {
        std::cout << "Lương: " << salary << std::endl;
    }
};

int main() {
    Person person;
    person.name = "John";  // Có thể truy cập từ bên ngoài

    Employee employee;
    employee.setSalary(5000.0);
    employee.name = "Alice";  // Có thể truy cập từ lớp con

    person.displayName();
    employee.displaySalary();

    return 0;
}

Trong ví dụ trên, chúng ta có một lớp Person với các thành phần public, privateprotected. Lớp Employee là lớp dẫn xuất từ Person, do đó, nó có thể truy cập các thành phần protected của lớp cha. Trong hàm main, chúng ta tạo một đối tượng person từ lớp Person và một đối tượng employee từ lớp Employee, và truy cập các thành phần phù hợp thông qua các phương thức.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top