JavaScript is required

Hãy xem xét đoạn mã sau:
class A
{
char x,y
protected:
int a,b;
public:
float F1,F2;
};
class B:public A
{
}"
Hỏi: B sử dụng được các biến thành viên nào của A

A.

a, b, F1, F2

B.

F1, F2, x, y

C.

x, y, a, b

D.
F1, F2
Trả lời:

Đáp án đúng: A


Trong ngôn ngữ C++, khi một lớp (class) kế thừa từ một lớp khác, các thành viên của lớp cơ sở (lớp cha) sẽ được kế thừa tùy thuộc vào phạm vi truy cập (access specifier) của chúng. Trong trường hợp này, lớp `B` kế thừa từ lớp `A` theo kiểu `public`, điều này có nghĩa là: - Các thành viên `public` của `A` vẫn là `public` trong `B`. - Các thành viên `protected` của `A` trở thành `protected` trong `B`. - Các thành viên `private` của `A` không thể truy cập trực tiếp từ `B`. Trong lớp `A`: - `x` và `y` là `private` (mặc định nếu không có access specifier), do đó không thể truy cập từ `B`. - `a` và `b` là `protected`, do đó có thể truy cập từ `B` (nhưng với phạm vi `protected`). - `F1` và `F2` là `public`, do đó có thể truy cập từ `B`. Vì vậy, `B` có thể sử dụng trực tiếp `F1` và `F2`. Vì kế thừa theo kiểu public nên `a` và `b` vẫn được kế thừa, nhưng với phạm vi protected. Đáp án chính xác nhất là F1, F2.

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