JavaScript is required

Anh (Chị) hãy cho biết kết quả của đoạn lệnh sau là gì?

class tinh {

public:

int a;

tinh() {} tinh(int i)

{a = i;} tinh

operator+(tinh t) {

tinh tmp;

tmp.a = a % t.a;

return tmp

}

} ;

void main() {

tinh t1(1),

t2(3),t3;

t3 = t1 + t2;

cout << t.a;

}

A.

1

B.

3

C.

4

D.

Lỗi biên dịch

Trả lời:

Đáp án đúng: D


Đoạn chương trình C++ được cung cấp có một số lỗi. 1. **Lỗi cú pháp trong khai báo hàm `operator+`**: Dòng `return tmp` nằm ngoài hàm `operator+`, gây ra lỗi biên dịch. 2. **Lỗi sử dụng biến `t`**: Trong hàm `main`, dòng `cout << t.a;` sử dụng biến `t` chưa được khai báo hoặc khởi tạo. Biến đúng cần dùng là `t3`. 3. **Phép chia lấy dư cho 0**: Nếu `t.a` bằng 0, phép toán `a % t.a` sẽ gây ra lỗi chia cho 0. Do có các lỗi trên, chương trình sẽ không biên dịch được. Vì vậy, đáp án đúng là 'D. Lỗi biên dịch'.

Câu hỏi liên quan