JavaScript is required

Cho đoạn chương trình sau:

class A {
private:
int x,y;
public:
void Xuat(); virtual;
};
Hãy nhận định phát biểu đúng:

A.

Xuat là phương thức ảo

B.

Lỗi tại dòng void Xuat();virtual;

C.

Xuat là một hàm tạo

D.

Xuat là một hàm huỷ

Trả lời:

Đáp án đúng: B


Trong C++, từ khóa `virtual` được sử dụng để khai báo một phương thức ảo. Phương thức ảo cho phép đa hình động, nghĩa là hành vi của phương thức có thể khác nhau tùy thuộc vào đối tượng thực tế mà nó được gọi đến. Tuy nhiên, cú pháp khai báo phương thức ảo trong C++ là `virtual void Xuat();` hoặc `virtual void Xuat() = 0;` (nếu là phương thức ảo thuần túy). Trong đoạn code đề bài, có một lỗi cú pháp tại dòng `void Xuat(); virtual;`. Cú pháp đúng phải là `virtual void Xuat();` hoặc `virtual void Xuat() = 0;`. Do đó, phát biểu đúng là có lỗi trong dòng khai báo phương thức ảo. Các phương án khác không đúng vì: - `Xuat` không phải là hàm tạo vì hàm tạo có tên trùng với tên class. - `Xuat` không phải là hàm hủy vì hàm hủy có tên trùng với tên class và có dấu ngã `~` ở trước. - Mặc dù `Xuat` được định ý định là phương thức ảo, nhưng vì có lỗi cú pháp nên nhận định "Xuat là phương thức ảo" không hoàn toàn chính xác trong ngữ cảnh này.

Cùng ôn thi với bộ câu hỏi trắc nghiệm môn Lập trình hướng đối tượng có đáp án mà tracnghiem.net chia sẽ dưới đây, nhằm giúp các bạn sinh viên chuyên ngành chuẩn bị cho kì thi sắp tới.


50 câu hỏi 60 phút

Câu hỏi liên quan