Anh (Chị) hãy cho biết kết quả của đoạn lệnh sau là gì?
class nhanvien {
double luong;
public:
void setLuong(double d) { luong = d; }
double getLuong() { return luong; } void
tangLuong(double d) { luong += d; }
}
int main() {
nhanvien A, *p; p
= &A p-
>setLuong(100);
cout << p->luong;}
Trả lời:
Đáp án đúng: D
Đoạn code khai báo một lớp `nhanvien` với một thuộc tính `luong` kiểu `double` (số thực dấu phẩy động) và các phương thức `setLuong`, `getLuong`, và `tangLuong` để thao tác với thuộc tính này.
Trong hàm `main`, một đối tượng `A` thuộc lớp `nhanvien` được tạo ra. Sau đó, một con trỏ `p` kiểu `nhanvien*` được gán địa chỉ của `A` (`p = &A`). Câu lệnh `p->setLuong(100)` sử dụng con trỏ `p` để gọi phương thức `setLuong` của đối tượng `A`, gán giá trị 100 cho thuộc tính `luong` của `A`. Cuối cùng, `cout << p->luong;` in ra giá trị của thuộc tính `luong` thông qua con trỏ `p`. Vì `luong` đã được gán giá trị 100, kết quả in ra sẽ là 100.
Do đó, đáp án đúng là A. 100.