JavaScript is required

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

class Phanso
{
private:
int ts,ms;
public:
Phanso(int ts1, int ms1)
{ts=ts1;ms=ms1;}
};
void main()
{
Phan so P1,P2(3,4);
}
Câu lệnh khai báo Phanso P1 bị báo lỗi vì:

A.

Gọi tới hàm tạo không đối mà chương trình lại không xây dựng

B.

Chương trình trên không thể lỗi được vì chương trình C++ sẽ tự phát sinh hàm tạo không đối

C.

Không xác định được gọi tới hàm tạo nào

D.

Tất cả đều sai

Trả lời:

Đáp án đúng: A


Trong C++, khi một lớp (class) có định nghĩa một hoặc nhiều hàm tạo (constructor), nhưng không có hàm tạo mặc định (hàm tạo không tham số), thì trình biên dịch sẽ không tự động tạo một hàm tạo mặc định cho lớp đó. Trong đoạn code đã cho, lớp Phanso có một hàm tạo Phanso(int ts1, int ms1), nhưng không có hàm tạo không tham số (ví dụ: Phanso()).

Khi khai báo Phan so P1;, bạn đang cố gắng tạo một đối tượng của lớp Phanso mà không cung cấp bất kỳ tham số nào. Vì không có hàm tạo nào phù hợp (tức là không có hàm tạo không tham số), trình biên dịch sẽ báo lỗi. Lệnh khai báo Phanso P2(3,4); hoạt động tốt vì nó sử dụng hàm tạo đã được định nghĩa Phanso(int ts1, int ms1) với hai tham số nguyên.

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.


48 câu hỏi 60 phút

Câu hỏi liên quan