JavaScript is required

Giả sử một lớp với các hàm dựng được khai báo như sau:
class Lop
{
private :
int a,b;
public:
lop () // Ham dung 1
{
a ^ b ^ 5;
}
lop (int m, int n) // Ham dung 2
{
a = m; b = n;
}
};
Khi tạo một đối tượng bằng cú pháp Lop obj Lop; Thì hàm dựng nào sẽ được gọi

A.

Hàm dựng 1

B.

Hàm dựng 2

C.

Cả 2 hàm dựng đều được gọi

D.
Không hàm dựng nào được gọi
Trả lời:

Đáp án đúng: A


Khi tạo một đối tượng bằng cú pháp `Lop objLop;` (chú ý có một lỗi đánh máy, phải là `Lop obj;`), trình biên dịch sẽ tìm một hàm dựng không tham số (hoặc với tất cả các tham số đều có giá trị mặc định) để khởi tạo đối tượng `obj`. Trong đoạn mã đã cho, hàm dựng `Lop()` (Hàm dựng 1) là hàm dựng không tham số. Do đó, hàm dựng 1 sẽ được gọi để khởi tạo đối tượng `obj`. Hàm dựng 2 `Lop(int m, int n)` yêu cầu hai tham số kiểu `int`, nên nó sẽ không được gọi trong trường hợp này trừ khi chúng ta tạo đối tượng theo cú pháp `Lop obj(a, b);` với `a` và `b` là các số nguyê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