JavaScript is required

Cho lớp Dathuc, để thực hiện khai báo sau mà không lỗi:
void main()
{
Dathuc
D1,D2(D1);
}
Ta cần xây dựng:

A.

Hàm tạo không đối và hàm tạo sao chép

B.

Hàm tạo không đối và hàm tạo có đối

C.

Hàm tạo có đối số mặc định

D.
Hàm tạo có đối
Trả lời:

Đáp án đúng: A


Trong đoạn mã `Dathuc D1, D2(D1);`, dòng `Dathuc D1` khai báo một đối tượng `D1` thuộc lớp `Dathuc`. Để khai báo này hợp lệ, lớp `Dathuc` cần có một hàm tạo không đối số (hoặc một hàm tạo có đối số mặc định). Dòng `D2(D1)` khai báo một đối tượng `D2` và khởi tạo nó bằng cách sao chép từ đối tượng `D1`. Điều này yêu cầu lớp `Dathuc` phải có một hàm tạo sao chép (copy constructor). Vì vậy, để đoạn mã trên biên dịch và chạy đúng, lớp `Dathuc` cần có hàm tạo không đối và hàm tạo sao chép. Phương án B không đúng vì nó chỉ cần hàm tạo có đối số, không đáp ứng việc khởi tạo D2 từ D1. Phương án C không hoàn toàn đúng vì hàm tạo có đối số mặc định có thể thay thế hàm tạo không đối, nhưng vẫn cần hàm tạo sao chép. Phương án D không đúng vì chỉ có hàm tạo có đối thì không thể khởi tạo D1.

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