Cho lớp B, C kế thừa lớp A; Lớp D kế thừa lớp B và C. Khi đó đối tượng của lớp D không thể kế thừa được thành phần của A. Cần phải:
Đáp án đúng: A
Trong C++, khi một lớp (ví dụ D) kế thừa từ nhiều lớp (ví dụ B và C), và cả B và C đều kế thừa từ một lớp chung (ví dụ A), thì D sẽ có hai bản sao của các thành viên của A. Điều này có thể gây ra sự mơ hồ khi D cố gắng truy cập các thành viên của A. Để giải quyết vấn đề này, ta sử dụng kế thừa ảo (virtual inheritance). Khi B và C kế thừa A một cách ảo, chúng chia sẻ một bản sao duy nhất của A, và D chỉ kế thừa một bản sao của A.
Đáp án 1 đúng vì khi khai báo A là lớp cơ sở ảo đối với B và C, đối tượng của lớp D sẽ chỉ có một bản sao của A, loại bỏ sự mơ hồ và cho phép truy cập các thành viên của A một cách rõ ràng.
Đáp án 2 sai vì việc khai báo A là lớp cơ sở ảo đối với D không giải quyết được vấn đề gốc là B và C đang có các bản sao riêng của A.
Đáp án 3 sai vì cần khai báo A là lớp cơ sở ảo đối với cả B và C, không chỉ B.
Đáp án 4 sai vì kế thừa có tính bắc cầu, nhưng cần kế thừa ảo để giải quyết vấn đề đa kế thừa khi có lớp cơ sở chung.
Cùng ôn thi với bộ câu hỏi trắc nghiệm môn Lập trình hướng đối tượng có đáp án mà tracnghiem.net chia sẽ dưới đây, nhằm giúp các bạn sinh viên chuyên ngành chuẩn bị cho kì thi sắp tới.
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
