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;
}
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.





