JavaScript is required

Khi đa năng hóa toán tử nhập (trích dòng) cho lớp SP ta khai báo dòng tiêu đề như sau:

A.

friend istream & operator >>(istream & istr, SP &a);

B.

friend void istream & operator >>(istream & istr, SP &a);

C.

friend istream & operator >>(istream istr, SP &a);

D.
friend istream & operator >>(istream & istr, SP a);
Trả lời:

Đáp án đúng: A


Trong đa năng hóa toán tử nhập (istream), chúng ta cần một hàm `friend` để có thể truy cập các thành viên private của lớp `SP`. Hàm này phải trả về một tham chiếu đến `istream` để có thể thực hiện nhập liên tiếp (ví dụ: `cin >> a >> b`). Tham số đầu tiên là một tham chiếu đến `istream` (để nhận dữ liệu nhập), và tham số thứ hai là một tham chiếu đến đối tượng `SP` (để lưu trữ dữ liệu nhập). * **A. friend istream & operator >>(istream & istr, SP &a);** Đây là khai báo đúng. Hàm `friend` trả về một tham chiếu đến `istream`, nhận một tham chiếu đến `istream` và một tham chiếu đến đối tượng `SP`. * **B. friend void istream & operator >>(istream & istr, SP &a);** Sai vì hàm này khai báo trả về kiểu `void istream &`, điều này không hợp lệ. Toán tử nhập phải trả về tham chiếu đến `istream` để cho phép nhập liên tiếp. * **C. friend istream & operator >>(istream istr, SP &a);** Sai vì tham số `istream istr` không phải là một tham chiếu. Khi đó, `istr` chỉ là bản sao của luồng nhập, và mọi thay đổi trên `istr` không ảnh hưởng đến luồng nhập gốc, làm cho việc nhập dữ liệu không có ý nghĩa. * **D. friend istream & operator >>(istream & istr, SP a);** Sai vì tham số `SP a` không phải là một tham chiếu. Điều này có nghĩa là `a` là một bản sao của đối tượng `SP` gốc. Bất kỳ thay đổi nào đối với `a` trong hàm sẽ không ảnh hưởng đến đối tượng `SP` gốc mà chúng ta muốn nhập dữ liệu vào. Vậy, đáp án đúng là A.

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