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 con trỏ bằng lệnh sau:
Lop ^objLop;
objLop = new Lop(3,4);
Thì hàm dựng nào sẽ được gọi

A.

Hàm dựng 2

B.

Hàm dựng 1

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


Câu hỏi kiểm tra về việc hàm dựng nào được gọi khi một đối tượng được tạo bằng toán tử `new` trong C++/CLI (biểu thị bằng `^`). Trong đoạn mã, `objLop = new Lop(3,4);` sử dụng toán tử `new` để cấp phát bộ nhớ cho một đối tượng `Lop` và đồng thời gọi hàm dựng để khởi tạo đối tượng này. Biểu thức `Lop(3,4)` chỉ rõ rằng chúng ta đang gọi hàm dựng có hai tham số kiểu `int`. Vì vậy, hàm dựng 2 ( `lop (int m, int n)`) sẽ được gọi để khởi tạo đối tượng `objLop` với `a = 3` và `b = 4`. Do đó, đáp án đúng là A.

Câu hỏi liên quan