What is wrong in the following code?

Trả lời:
Đáp án đúng: B
Đoạn mã C++ này có một lỗi quan trọng liên quan đến tính kế thừa và con trỏ.
**Phân tích lỗi:**
* **Tính kế thừa:** Lớp `Derived` kế thừa từ lớp `Base` theo chế độ `private`. Điều này có nghĩa là tất cả các thành viên của `Base` (kể cả các thành viên `public`) trở thành `private` trong `Derived`. Do đó, bên ngoài lớp `Derived`, không thể truy cập hoặc sử dụng các thành viên của `Base` thông qua đối tượng của `Derived`.
* **Con trỏ và ép kiểu:** Trong hàm `main`, bạn đang cố gắng gán địa chỉ của một đối tượng `Derived` cho một con trỏ kiểu `Base*`. Tuy nhiên, vì `Derived` kế thừa `Base` theo chế độ `private`, việc ép kiểu ngầm định từ `Derived*` sang `Base*` là không hợp lệ bên ngoài lớp `Derived`. Điều này là do trình biên dịch không cho phép bạn sử dụng một con trỏ `Base*` để truy cập các thành viên `private` của `Base` trong `Derived` từ bên ngoài.
**Giải thích các phương án:**
* **A. There is nothing wrong:** Sai. Như đã giải thích ở trên, có một lỗi trong việc sử dụng con trỏ và tính kế thừa.
* **B. One cannot have a ‘Base’ pointer to ‘Derived’ since it is not derived publicly:** Đúng. Vì kế thừa là `private` nên không thể dùng con trỏ `Base` để trỏ đến đối tượng `Derived` bên ngoài lớp `Derived`.
* **C. One need a derived class pointer to point to a derived class:** Sai. Vấn đề không phải là việc cần con trỏ của lớp con, mà là chế độ kế thừa `private` ngăn cản việc sử dụng con trỏ lớp cha để trỏ đến đối tượng lớp con từ bên ngoài.
* **D. One required to code a constructor for Derived:** Sai. Mặc dù việc có constructor cho `Derived` là cần thiết trong nhiều trường hợp, nhưng nó không phải là nguyên nhân trực tiếp gây ra lỗi trong đoạn mã này. Lỗi chủ yếu đến từ việc kế thừa `private`.
**Kết luận:**
Đáp án đúng là **B**. Kế thừa `private` ngăn cản việc sử dụng con trỏ `Base` để trỏ đến đối tượng `Derived` bên ngoài lớp `Derived`.
Câu hỏi liên quan

FORM.08: Bộ 130+ Biểu Mẫu Thống Kê Trong Doanh Nghiệp

FORM.07: Bộ 125+ Biểu Mẫu Báo Cáo Trong Doanh Nghiệp

FORM.06: Bộ 320+ Biểu Mẫu Hành Chính Thông Dụng

FORM.05: Bộ 330+ Biểu Mẫu Thuế - Kê Khai Thuế Mới Nhất

FORM.04: Bộ 240+ Biểu Mẫu Chứng Từ Kế Toán Thông Dụng
