JavaScript is required

Anh (Chị) hãy cho biết kết quả của đoạn lệnh sau là gì?

class CRect {

int *height, *width;

public:

CRect(int,int); ~CRect ();

int DT (void) { return (*height **width); }

} ;

CRect::CRect (int a, int b) {

height = new int;

width = new int;

*height = a;

*width = b;

}

CRect::~CRect() {

delete height;

delete width;

}

int main() {

CRect cn1 (3,4);

cout << cn1.DT();

return 0;

}

A.

12

B.

20

C.

7

D.

10

Trả lời:

Đáp án đúng: A


Đoạn code định nghĩa một lớp `CRect` đại diện cho một hình chữ nhật. Lớp này có hai thuộc tính là `height` (chiều cao) và `width` (chiều rộng), cả hai đều là con trỏ kiểu `int`. Trong hàm tạo `CRect(int a, int b)`, bộ nhớ được cấp phát động cho `height` và `width`, sau đó giá trị của `a` được gán cho `*height` và giá trị của `b` được gán cho `*width`. Phương thức `DT()` trả về tích của `*height` và `*width`. Hàm hủy `~CRect()` giải phóng bộ nhớ đã cấp phát cho `height` và `width`.\n\nTrong hàm `main()`, một đối tượng `cn1` của lớp `CRect` được tạo với chiều cao là 3 và chiều rộng là 4. Sau đó, phương thức `cn1.DT()` được gọi, trả về tích của 3 và 4, tức là 12. Giá trị này được in ra màn hình.\n\nVậy, kết quả của đoạn lệnh là 12.

Câu hỏi liên quan