Anh (Chị) hãy cho biết kết quả của đoạn lệnh sau là gì?
class rec {
public:
int *w;
rec(int a) {
w = new int; *w = a;
}
} ;
Void main() {
Rec r(1);
cout << r.w;
}
Trả lời:
Đáp án đúng: C
Đoạn mã C++ được cung cấp có một số vấn đề cần xem xét:
1. **Thiếu `#include ` và `using namespace std;`**: Để sử dụng `cout`, ta cần phải khai báo thư viện `iostream` và không gian tên `std`.
2. **`Void main()`**: Hàm `main` trong C++ phải trả về kiểu `int`, tức là `int main()`.
3. **In địa chỉ**: Đoạn code `cout << r.w;` sẽ in ra địa chỉ của con trỏ `w`, chứ không phải giá trị mà con trỏ `w` trỏ tới.
Mặc dù có các lỗi trên, câu hỏi yêu cầu xác định kết quả *nếu* đoạn lệnh được biên dịch và chạy. Vì vậy, nếu bỏ qua lỗi biên dịch, `r.w` sẽ in ra địa chỉ của vùng nhớ mà `w` đang trỏ tới.
Vì vậy, đáp án đúng nhất là C. Địa chỉ của r.w.