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 = a; width = b;
}
CRect::CRect () {
height = 5;
width = 5;
}
int main() {
CRect cn1 (3,4);
CRect cn2;
cout << cn1.DT() + cn2.DT();
return 0;
}
Trả lời:
Đáp án đúng: C
Đoạn code định nghĩa một lớp `CRect` với hai thuộc tính `height` (chiều cao) và `width` (chiều rộng), cùng hai hàm tạo (constructor): một hàm tạo không tham số và một hàm tạo có hai tham số. Hàm `DT` trả về diện tích của hình chữ nhật.
Trong hàm `main`, một đối tượng `cn1` của lớp `CRect` được tạo bằng cách sử dụng hàm tạo có hai tham số (3, 4), do đó `cn1.height` là 3 và `cn1.width` là 4. Một đối tượng `cn2` của lớp `CRect` được tạo bằng cách sử dụng hàm tạo không tham số, do đó `cn2.height` và `cn2.width` đều là 5.
Giá trị được in ra là `cn1.DT() + cn2.DT()`. `cn1.DT()` trả về 3 * 4 = 12. `cn2.DT()` trả về 5 * 5 = 25. Vậy, 12 + 25 = 37.
Do đó, kết quả của đoạn code là 37.