Câu hỏi phỏng vấn OOP
Câu hỏi

Bạn có thể khai báo một lớp riêng ...

Câu trả lời

Trong C++, không thể trực tiếp khai báo một lớp là riêng tư trong một không gian tên bởi vì không gian tên không hỗ trợ các chỉ định truy cập như private hoặc public cho các thành viên bên trong nó. Tuy nhiên, có một số cách để giới hạn quyền truy cập vào lớp từ bên ngoài không gian tên, từ đó tạo ra một hiệu ứng tương tự như khai báo một lớp riêng tư.

Một cách là sử dụng không gian tên vô danh (unnamed namespace) hoặc không gian tên nội bộ. Các thành viên bên trong một không gian tên vô danh chỉ có thể truy cập được trong đơn vị biên dịch (translation unit) mà chúng được định nghĩa, không thể truy cập từ các đơn vị biên dịch khác. Điều này giúp giới hạn quyền truy cập đến lớp từ bên ngoài không gian tên mà nó được định nghĩa[1].

Một cách khác là định nghĩa lớp trong một tệp nguồn (source file) hoặc trong một tệp tiêu đề riêng tư (private header file) mà chỉ được bao gồm (include) bởi các tệp nguồn cần truy cập đến lớp đó. Điều này ngăn chặn việ...

expert

expert

Gợi ý câu hỏi phỏng vấn

middle

"Data Encapsulation" có nghĩa là gì?

expert

Theo thuật ngữ mà một lập trình viên OOP sẽ hiểu (không có bất kỳ nền tảng lập trình chức năng nào), đơn nguyên là gì?

expert

Sự khác biệt giữa Association, Aggregation và Composition là gì?

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào