Câu 1:
Trong C++ hướng đối tượng, khái niệm nào cho phép một lớp có nhiều khởi tạo với danh sách tham số khác nhau, mà vẫn giữ nguyên tên hàm và kiểu trả về?
- Overloading constructor (nạp chồng hàm khởi tạo)
- Virtual constructor
- Copy constructor
- Move constructor
Câu 2:
Thuộc tính nào cho phép một lớp ẩn chi tiết thực thi từ người dùng lớp khác và đảm bảo an toàn dữ liệu bằng cách ẩn thành viên và kiểm tra truy cập?
- Inheritance (Kế thừa)
- Encapsulation (Đóng gói)
- Polymorphism (Đa hình)
- Abstraction (Trừu tượng hóa)
Câu 3:
Trong C++, từ khóa nào dùng để đảm bảo thành viên dữ liệu hoặc hàm chỉ có thể truy cập được từ các thành phần liên quan hoặc từ lớp con?
- private
- public
- protected
- internal
Câu 4:
Một lớp có thể kế thừa từ một lớp khác và ghi đè lại phương thức ảo. Từ khóa nào xác định việc ghi đè đúng kiểu và cho phép đa hình?
- virtual
- override
- final
- abstract
Câu 5:
Trong C++, khởi tạo sao chép (copy constructor) có chữ ký nào đúng?
- ClassName(const ClassName& other)
- ClassName(ClassName other)
- ClassName& operator=(const ClassName& other)
- ClassName(ClassName&& other)
Câu 6:
Để quản lý vòng đời đối tượng hiệu quả và tránh rò rỉ bộ nhớ khi dùng cấp phát động, cách nào là phù hợp nhất?
- Sử dụng raw pointers và delete ở mọi nơi
- Sử dụng smart pointers (unique_ptr, shared_ptr)
- Sử dụng C-style malloc/free
- Gán con trỏ null cho đối tượng
Câu 7:
Biểu thức toán tử nào cho phép tham chiếu tới đối tượng hiện tại trong lớp thành viên (this) và được dùng phổ biến trong thiết kế fluent interface?
- operator->
- operator*
- operator()
- operator=
Câu 8:
Trong thiết kế hướng đối tượng, nguyên tắc SOLID nguyên tắc nào liên quan tới chữ ký hàm và phạm vi tác động của thay đổi?
- Single Responsibility Principle (Nguyên tắc trách nhiệm đơn)
- Open/Closed Principle (Mở đóng)
- Liskov Substitution Principle (Nguyên tắc thay thế Liskov)
- Dependency Inversion Principle (Đảo ngược phụ thuộc)
Câu 9:
Một lớp trừu tượng trong C++ được biểu thị bằng:
- Có constructor ẩn danh
- Có ít nhất một hàm ảo thuần túy (pure virtual function)
- Kế thừa từ lớp abstracter
- Có member data ẩn
Câu 10:
Trong việc quản lý tài nguyên theo RAII (Resource Acquisition Is Initialization), hành động nào đúng nhất?
- Cấp phát và giải phóng tài nguyên thủ công ở mọi nơi
- Sử dụng bất động hóa (garbage collection) để giải phóng tài nguyên
- Gán tài nguyên vào đối tượng và để nó tự giải phóng khi đối tượng bị hủy
- Truyền tài nguyên giữa các đối tượng bằng tham chiếu