Anh (Chị) hãy cho biết kết quả của đoạn lệnh sau là gì?
1. class CRect {
2. int height, width;
3. public :
4. void setGiatri(int a, int b) {
5. height = a;
6. width = b;
7. }
8. int DT() { return (height * width); }
9. };
10. int main() {
11. CRect a, *b, *c, *d;
12. d = new CRect[2]
13. b = new CRect;
14. c = &a
15. a.setGiatri(1,2);
16. b->setGiatri(3,4);
17. d->setGiatri(5,6);
18. d[1].setGiatri(7,8);
19. cout << c->DT() << endl;
20. delete b;
21. delete[] d;
22. return 0; 23. }
Trả lời:
Đáp án đúng: A
Đoạn chương trình C++ này định nghĩa một lớp `CRect` với các thuộc tính `height` (chiều cao) và `width` (chiều rộng), cùng phương thức `setGiatri` để gán giá trị cho các thuộc tính này và phương thức `DT` để tính diện tích. Trong hàm `main`, chương trình khởi tạo các đối tượng `CRect` theo nhiều cách khác nhau, gán giá trị và in ra diện tích của đối tượng `a` thông qua con trỏ `c`. Vì `c` trỏ đến `a`, và `a` được gán `height = 1` và `width = 2`, diện tích là `1 * 2 = 2`.