JavaScript is required

Which of the following can be virtual?

A.
constructors
B.
destructors
C.
static functions
D.
None of the above
Trả lời:

Đáp án đúng: B


Trong C++, hàm hủy (destructor) có thể là ảo (virtual). Điều này cho phép đa hình trong các lớp kế thừa. Khi một đối tượng của lớp con được xóa thông qua một con trỏ của lớp cha, hàm hủy ảo đảm bảo rằng hàm hủy của lớp con cũng được gọi, ngăn ngừa rò rỉ bộ nhớ và đảm bảo giải phóng tài nguyên đúng cách. Hàm tạo (constructor) không thể là ảo vì nó chịu trách nhiệm tạo ra đối tượng, và khái niệm đa hình chỉ áp dụng cho các đối tượng đã được tạo. Các hàm tĩnh (static functions) thuộc về lớp chứ không phải đối tượng, và do đó không thể là ảo.

Câu hỏi liên quan