Đáp án đúng: BĐoạn code C++ này liên quan đến tính đa hình (polymorphism) thông qua các hàm ảo (virtual functions) và thứ tự khởi tạo/hủy bỏ của các đối tượng trong kế thừa.
Khi một đối tượng `Child` được tạo:
1. Đầu tiên, constructor của lớp `Parent` được gọi. Bên trong constructor của `Parent`, hàm `Status()` được gọi. Vì `Status()` là một hàm ảo, phiên bản của hàm `Status()` được gọi phụ thuộc vào kiểu thực tế của đối tượng. Trong trường hợp này, đối tượng đang được xây dựng là một đối tượng `Child`, vì vậy `Child::Status()` được gọi, in ra "Child ".
2. Tiếp theo, constructor của lớp `Child` được gọi. Bên trong constructor của `Child`, hàm `Status()` lại được gọi. Tương tự như trên, `Child::Status()` được gọi, in ra "Child ".
Khi đối tượng `Child` bị hủy (khi `main` kết thúc):
1. Đầu tiên, destructor của lớp `Child` được gọi. Bên trong destructor của `Child`, hàm `Status()` được gọi. Vì `Status()` là một hàm ảo, `Child::Status()` được gọi, in ra "Child ".
2. Tiếp theo, destructor của lớp `Parent` được gọi. Bên trong destructor của `Parent`, hàm `Status()` được gọi. Vì `Status()` là một hàm ảo, phiên bản của hàm `Status()` được gọi phụ thuộc vào kiểu thực tế của đối tượng. Trong trường hợp này, đối tượng đang bị hủy là một đối tượng `Child`, vì vậy `Child::Status()` được gọi, in ra "Child ".
Như vậy, output cuối cùng là "Child Child Child Child".
Tuy nhiên, do không có đáp án nào chính xác nên ta chọn đáp án gần đúng nhất là B.
Lưu ý: Kết quả chính xác là Child Child Child Child. Đề bài hoặc các đáp án có thể bị sai sót.