Cho lớp A, B, C trong đó lớp C kế thừa lớp A,B. Trong lớp A, B đều có phương thức Xuat, lớp C không có phương thức Xuất, khi khai báo đối tượng obj thuộc lớp C thì nếu gọi đến phương thức Xuat (obj.Xuat()) thì khi biên dịch thấy xuất hiện lỗi, trường hợp xảy ra lỗi này là do:
Trả lời:
Đáp án đúng: D
Trong C++, khi một lớp kế thừa từ nhiều lớp cha (đa kế thừa) và các lớp cha có cùng tên phương thức (như phương thức `Xuat` trong lớp A và lớp B), sẽ xảy ra hiện tượng **trùng tên** (name collision). Khi đối tượng lớp con (C) gọi đến phương thức trùng tên này, trình biên dịch không thể tự động xác định được nên gọi phương thức `Xuat` của lớp A hay lớp B. Do đó, trình biên dịch sẽ báo lỗi. Để giải quyết lỗi này, ta cần chỉ rõ lớp cha mà phương thức `Xuat` được gọi đến, ví dụ: `obj.A::Xuat()` hoặc `obj.B::Xuat()`. Hoặc có thể ghi đè (override) phương thức Xuat trong lớp C để chỉ định hành vi mong muốn.
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.
50 câu hỏi 60 phút
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
