Hướng dẫn truy cập hàm thành viên riêng tư trong C++
Nourish Ad - Hướng dẫn truy cập các hàm thành viên riêng tư của một lớp trong C++
📝 Mục lục:
Giới thiệu
Trong ngôn ngữ lập trình C++, chúng ta có thể khai báo các thành viên trong một lớp là công khai, riêng tư hoặc bảo vệ. Khi một hàm thành viên là công khai, chúng ta có thể truy cập trực tiếp thông qua tên đối tượng từ bất kỳ đâu trong chương trình. Tuy nhiên, khi một hàm thành viên là riêng tư, nó không thể truy cập từ bên ngoài lớp. Trong bài viết này, chúng ta sẽ tìm hiểu cách truy cập các hàm thành viên riêng tư của một lớp trong C++.
Truy cập hàm thành viên công khai
Khi một hàm thành viên là công khai, chúng ta có thể truy cập trực tiếp thông qua tên đối tượng. Ví dụ:
class Employee {
public:
int ID;
char name;
float salary;
void displayDetails() {
cout << "ID: " << ID << endl;
cout << "Name: " << name << endl;
cout << "Salary: " << salary << endl;
}
};
Trong ví dụ này, chúng ta có thể truy cập hàm displayDetails()
thông qua đối tượng Employee
như sau:
Employee emp;
emp.displayDetails();
Truy cập hàm thành viên riêng tư
Khi một hàm thành viên là riêng tư, chúng ta không thể truy cập từ bên ngoài lớp. Để truy cập một hàm thành viên riêng tư, chúng ta cần gọi nó từ một hàm thành viên công khai khác trong cùng một lớp. Ví dụ:
class Employee {
private:
void getDetails() {
cout << "Enter ID, name, and salary: ";
cin >> ID >> name >> salary;
}
public:
int ID;
char name;
float salary;
void displayDetails() {
getDetails();
cout << "ID: " << ID << endl;
cout << "Name: " << name << endl;
cout << "Salary: " << salary << endl;
}
};
Trong ví dụ này, chúng ta không thể gọi hàm getDetails()
trực tiếp từ hàm main()
, nhưng chúng ta có thể gọi nó thông qua hàm displayDetails()
:
Employee emp;
emp.displayDetails();
Ví dụ
...
Ưu điểm và nhược điểm
✅ Ưu điểm:
❌ Nhược điểm:
Kết luận
Trong bài viết này, chúng ta đã tìm hiểu cách truy cập các hàm thành viên riêng tư của một lớp trong ngôn ngữ lập trình C++. Việc sử dụng hàm thành viên riêng tư cho phép chúng ta bảo vệ dữ liệu và quyền riêng tư của lớp.