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:
Trả lời:
Đáp án đúng: A
Đoạn code cho thấy việc khai báo `Dathuc D1, D2(D1);`
- `Dathuc D1;` đòi hỏi lớp `Dathuc` phải có hàm tạo không đối số (default constructor). Nếu không có hàm tạo nào được định nghĩa, trình biên dịch sẽ tự động tạo một hàm tạo mặc định không đối số. Tuy nhiên, nếu đã có hàm tạo khác được định nghĩa, bạn cần tự cung cấp hàm tạo mặc định nếu muốn sử dụng cú pháp này.
- `Dathuc D2(D1);` đòi hỏi lớp `Dathuc` phải có hàm tạo sao chép (copy constructor). Hàm tạo sao chép được sử dụng để tạo một đối tượng mới từ một đối tượng đã tồn tại. Trong trường hợp này, `D2` được tạo bằng cách sao chép từ `D1`.
Do đó, để đoạn code trên hoạt động mà không gây ra lỗi, lớp `Dathuc` cần phải có cả hàm tạo không đối số và hàm tạo sao chép.
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
