Cần xây dựng lớp đường thẳng y = ax+b. Thuộc tính của lớp đường thẳng này được xác định là:
Đáp án đúng: A
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.
Câu hỏi liên quan
Câu hỏi này kiểm tra kiến thức về tính kế thừa trong lập trình hướng đối tượng. Khi nhiều lớp đối tượng (xe đạp, xe máy, ô tô con, xe tải) có chung những đặc điểm và hành vi (tải trọng, loại động cơ, biển số, di chuyển từ A đến B), ta có thể tạo một lớp cơ sở (lớp cha) để chứa những thuộc tính và phương thức chung này. Các lớp xe đạp, xe máy,... sẽ kế thừa từ lớp cơ sở này, giúp tránh lặp code và dễ dàng quản lý, bảo trì.
- Lớp cơ sở (Base class/Super class) là lớp mà các lớp khác kế thừa từ đó. Trong trường hợp này, PT_Giao_Thông là lớp cơ sở.
- Lớp dẫn xuất (Derived class/Subclass) là lớp kế thừa từ một lớp khác (lớp cơ sở). Các lớp xe đạp, xe máy,... là các lớp dẫn xuất.
- Lớp bao và Lớp thành viên không phải là thuật ngữ chính xác trong ngữ cảnh kế thừa.
Vậy đáp án đúng là lớp PT_Giao_Thông là lớp cơ sở cho các lớp đối tượng trên.
Trong C++, khi một lớp (C) kế thừa từ nhiều lớp cha (A, B) mà các lớp cha này có cùng một phương thức (Xuat), hiện tượng này được gọi là đa kế thừa với sự mơ hồ về tên (name ambiguity). Khi đối tượng của lớp con (obj thuộc lớp C) gọi phương thức Xuat, trình biên dịch không thể tự động quyết định nên gọi phương thức Xuat của lớp cha A hay lớp cha B. Do đó, nó báo lỗi. Để giải quyết vấn đề này, ta cần chỉ rõ lớp cha nào mà phương thức Xuat được gọi đến, ví dụ: obj.A::Xuat() hoặc obj.B::Xuat().
Hàm tạo sao chép (copy constructor) là một hàm thành viên đặc biệt của một lớp, được sử dụng để khởi tạo một đối tượng mới như một bản sao của một đối tượng hiện có. Hàm tạo sao chép được gọi khi một đối tượng được truyền theo giá trị, trả về theo giá trị hoặc được sử dụng để khởi tạo một đối tượng mới. Trong C++, cú pháp khai báo hàm tạo sao chép có dạng: ClassName (const ClassName &obj);
Trong đó ClassName
là tên của lớp, obj
là một tham chiếu hằng đến một đối tượng thuộc lớp ClassName
. Như vậy, Diem (const Diem &D);
là khai báo đúng của hàm tạo sao chép.
Đoạn mã Phanso(int ts=0, int ms=1);
trong khai báo lớp Phanso
thể hiện một hàm tạo (constructor). Hàm tạo này có hai tham số: ts
(tử số) và ms
(mẫu số). Điều đặc biệt ở đây là cả hai tham số đều có giá trị mặc định: ts
mặc định là 0 và ms
mặc định là 1. Do đó, đây là một hàm tạo có tham số mặc định. Điều này cho phép chúng ta tạo đối tượng Phanso
theo nhiều cách:
- Không truyền tham số nào:
Phanso()
(sử dụng giá trị mặc định ts=0, ms=1). - Chỉ truyền một tham số:
Phanso(5)
(sử dụng ts=5, ms=1). - Truyền cả hai tham số:
Phanso(5, 2)
(sử dụng ts=5, ms=2).
Các lựa chọn khác không đúng vì:
- Hàm tạo sao chép cần một đối tượng cùng lớp làm tham số (ví dụ:
Phanso(const Phanso &p)
). - Phương thức gán được dùng để gán giá trị của một đối tượng cho một đối tượng khác (ví dụ:
Phanso& operator=(const Phanso &p)
).
Trong C++, khi một lớp (ví dụ D) kế thừa từ nhiều lớp (ví dụ B và C), và cả B và C đều kế thừa từ một lớp chung (ví dụ A), thì D sẽ có hai bản sao của các thành viên của A. Điều này có thể gây ra sự mơ hồ khi D cố gắng truy cập các thành viên của A. Để giải quyết vấn đề này, ta sử dụng kế thừa ảo (virtual inheritance). Khi B và C kế thừa A một cách ảo, chúng chia sẻ một bản sao duy nhất của A, và D chỉ kế thừa một bản sao của A.
Đáp án 1 đúng vì khi khai báo A là lớp cơ sở ảo đối với B và C, đối tượng của lớp D sẽ chỉ có một bản sao của A, loại bỏ sự mơ hồ và cho phép truy cập các thành viên của A một cách rõ ràng.
Đáp án 2 sai vì việc khai báo A là lớp cơ sở ảo đối với D không giải quyết được vấn đề gốc là B và C đang có các bản sao riêng của A.
Đáp án 3 sai vì cần khai báo A là lớp cơ sở ảo đối với cả B và C, không chỉ B.
Đáp án 4 sai vì kế thừa có tính bắc cầu, nhưng cần kế thừa ảo để giải quyết vấn đề đa kế thừa khi có lớp cơ sở chung.

FORM.08: Bộ 130+ Biểu Mẫu Thống Kê Trong Doanh Nghiệp

FORM.07: Bộ 125+ Biểu Mẫu Báo Cáo Trong Doanh Nghiệp

FORM.06: Bộ 320+ Biểu Mẫu Hành Chính Thông Dụng

FORM.05: Bộ 330+ Biểu Mẫu Thuế - Kê Khai Thuế Mới Nhất

FORM.04: Bộ 240+ Biểu Mẫu Chứng Từ Kế Toán Thông Dụng

CEO.22: Bộ Tài Liệu Quy Trình Kiểm Toán, Kiểm Soát Nội Bộ Doanh Nghiệp
ĐĂNG KÝ GÓI THI VIP
- Truy cập hơn 100K đề thi thử và chính thức các năm
- 2M câu hỏi theo các mức độ: Nhận biết – Thông hiểu – Vận dụng
- Học nhanh với 10K Flashcard Tiếng Anh theo bộ sách và chủ đề
- Đầy đủ: Mầm non – Phổ thông (K12) – Đại học – Người đi làm
- Tải toàn bộ tài liệu trên TaiLieu.VN
- Loại bỏ quảng cáo để tăng khả năng tập trung ôn luyện
- Tặng 15 ngày khi đăng ký gói 3 tháng, 30 ngày với gói 6 tháng và 60 ngày với gói 12 tháng.