JavaScript is required

Anh (Chị) hãy cho biết đoạn lệnh sau in ra kết quả nào?

class nhanvien {

double luong;

public:

void setLuong(double d) { luong = d; }

double getLuong() { return luong; } void

tangLuong(double d) { luong += d; }

} class quanly:public nhanvien

{ double phucap; public:

quanly() { setLuong(100);

phucap = getLuong() * 0.5

cout << phucap;

} } ; void main() {

quanly q; }

A.

Không hiện gì hết.

B.

50

C.

0

D.

Chương trình báo lỗi vì lớp nhanvien không có hàm constructor nào cả.

Trả lời:

Đáp án đúng: B


Đoạn code C++ này có một số lỗi. 1. **Lỗi cú pháp**: Dòng `} class quanly:public nhanvien` sai cú pháp. Cần phải có dấu chấm phẩy sau dấu ngoặc nhọn đóng của lớp `nhanvien`. Đúng ra phải là `}; class quanly: public nhanvien`. 2. **Thiếu thư viện**: Để sử dụng `cout`, bạn cần include thư viện `iostream`. Thiếu dòng `#include ` 3. **`main` function**: Trong C++, hàm `main` nên trả về một giá trị kiểu `int`. Do đó, nên sử dụng `int main()` thay vì `void main()`. Tuy nhiên, giả sử chúng ta bỏ qua các lỗi này và trình biên dịch có thể biên dịch được (ví dụ, bằng cách tự động thêm `#include ` và sửa lỗi cú pháp). Khi đó, chương trình sẽ thực hiện như sau: * Một đối tượng `q` của lớp `quanly` được tạo. * Hàm constructor của `quanly` được gọi. * Trong constructor, `setLuong(100)` được gọi, gán `luong` bằng 100. * `phucap` được tính bằng `getLuong() * 0.5`, tức là `100 * 0.5 = 50`. * `cout << phucap` in giá trị của `phucap` ra màn hình. Do có lỗi cú pháp, chương trình sẽ không biên dịch được và sẽ báo lỗi. Vì vậy, đáp án chính xác nhất là chương trình báo lỗi.

Câu hỏi liên quan