Chọn phát biểu đúng cho hàm khởi tạo:
Trả lời:
Đáp án đúng: B
**Phân tích câu hỏi:**
Câu hỏi kiểm tra kiến thức về hàm khởi tạo (constructor) trong lập trình hướng đối tượng. Cần hiểu rõ các đặc điểm và quy tắc liên quan đến hàm khởi tạo.
**Đánh giá các phương án:**
* **A. Một lớp sẽ kế thừa các hàm khởi tạo từ lớp cha:** Sai. Lớp con không kế thừa hàm khởi tạo từ lớp cha. Lớp con có thể gọi hàm khởi tạo của lớp cha thông qua `super()`, nhưng không phải là kế thừa.
* **B. Trình biên dịch sẽ tự động tạo hàm khởi tạo mặc định nếu lớp không định nghĩa hàm khởi tạo:** Đúng. Nếu một lớp không có hàm khởi tạo nào được định nghĩa, trình biên dịch sẽ tự động tạo một hàm khởi tạo mặc định không tham số. Hàm khởi tạo mặc định này sẽ thực hiện các khởi tạo mặc định cho các thành viên của lớp.
* **C. Tất cả các hàm khởi tạo có kiểu trả về là void:** Sai. Hàm khởi tạo không có kiểu trả về, kể cả `void`. Hàm khởi tạo có nhiệm vụ khởi tạo đối tượng của lớp.
* **D. Tất cả các câu trên dều sai:** Sai, vì câu B đúng.
**Kết luận:**
Đáp án đúng là B. Trình biên dịch sẽ tự động tạo hàm khởi tạo mặc định nếu lớp không định nghĩa hàm khởi tạo.