Chọn phương án tương ứng với phát biểu sai:
Trả lời:
Đáp án đúng: B
Câu hỏi yêu cầu chọn phát biểu sai về destructor trong C++.
- Phương án 1: Hàm destructor dùng để hủy vùng nhớ đã cấp cho con trỏ `this`. Phát biểu này đúng. Destructor chịu trách nhiệm giải phóng tài nguyên mà đối tượng nắm giữ, bao gồm cả vùng nhớ được cấp phát động cho con trỏ `this`.
- Phương án 2: Một lớp luôn luôn có hàm destructor. Phát biểu này sai. Nếu lập trình viên không định nghĩa destructor, trình biên dịch sẽ tự động tạo một destructor mặc định (nếu cần thiết). Vì vậy, lớp *có thể* không có destructor do người dùng định nghĩa, nhưng về mặt khái niệm, nó vẫn có một destructor (do compiler cung cấp).
- Phương án 3: Hàm destructor có thể là 1 hàm ảo. Phát biểu này đúng. Việc khai báo destructor là ảo rất quan trọng trong các lớp đa hình để đảm bảo giải phóng tài nguyên đúng cách khi đối tượng được hủy thông qua con trỏ hoặc tham chiếu đến lớp cơ sở.
- Phương án 4: Các phương án trên đều không đúng. Phát biểu này sai vì phương án 2 sai.
Vậy, phương án sai là "Một lớp luôn luôn có hàm destructor".





