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

expert

Tại sao lại ưu tiên Sử dụng Composition hơn là Inheritance? Có những sự đánh đổi nào cho mỗi phương pháp? Khi nào bạn nên chọn Inheritance thay vì Composition?

junior

Trong lập trình OOP, lớp con là gì?

expert

Bạn có thể cung cấp một giải thích đơn giản về phương thức so với hàm trong ngữ cảnh lập trình hướng đối tượng không?

Bình luận

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

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