JavaScript is required

Cho khai báo sau:
Cho khai báo sau: (ảnh 1)

A.

Lớp A là bạn của lớp B

B.

Lớp C là bạn của lớp A

C.

Các phương thức của lớp B có quyền truy cập đến tất cả các thành viên riêng của lớp A

D.
Các phương thức của lớp A có quyền truy cập đến tất cả các thành viên riêng của lớp B
Trả lời:

Đáp án đúng: C


Đoạn code C++ được cung cấp thể hiện mối quan hệ bạn bè (friendship) giữa các lớp. Cụ thể: * `class B;` : Khai báo trước (forward declaration) của lớp `B`. Điều này cần thiết vì lớp `A` sẽ sử dụng lớp `B` trong định nghĩa của nó. * `class A` : Định nghĩa lớp `A`. * `friend class B;` : Dòng lệnh này tuyên bố rằng lớp `B` là bạn của lớp `A`. Điều này có nghĩa là tất cả các phương thức của lớp `B` đều có quyền truy cập vào tất cả các thành viên (bao gồm cả các thành viên private và protected) của lớp `A`. * `class C` : Định nghĩa lớp `C`. * `friend class A;` : Dòng lệnh này tuyên bố rằng lớp `A` là bạn của lớp `C`. Điều này có nghĩa là tất cả các phương thức của lớp `A` đều có quyền truy cập vào tất cả các thành viên (bao gồm cả các thành viên private và protected) của lớp `C`. Vậy, từ đoạn code trên, ta có thể kết luận: * Lớp `B` là bạn của lớp `A`, do đó các phương thức của `B` có thể truy cập các thành viên private của `A`. * Lớp `A` là bạn của lớp `C`, do đó các phương thức của `A` có thể truy cập các thành viên private của `C`. **Phân tích các đáp án:** * **A. Lớp A là bạn của lớp B:** Sai. Lớp B là bạn của lớp A, không phải ngược lại. * **B. Lớp C là bạn của lớp A:** Đúng. `friend class A;` được khai báo trong lớp C. * **C. Các phương thức của lớp B có quyền truy cập đến tất cả các thành viên riêng của lớp A:** Đúng. Đây là ý nghĩa của việc lớp B là bạn của lớp A. * **D. Các phương thức của lớp A có quyền truy cập đến tất cả các thành viên riêng của lớp B:** Sai. Lớp A không phải là bạn của lớp B, mà lớp B là bạn của lớp A. Vì có hai đáp án đúng (B và C), nhưng đáp án C mô tả chính xác và đầy đủ hơn về mối quan hệ bạn bè giữa hai lớp, và đây là kiến thức trọng tâm của câu hỏi, nên đáp án C được chọn là đáp án đúng nhất.

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