JavaScript is required

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

A.

100

B.

0

C.

110

D.

Lỗi biên dịch.

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.

Câu hỏi liên quan