Cho biết cách khai báo phương thức ảo trong C++ nào sau đây là đúng:
Đáp án đúng: B
Trong C++, cú pháp khai báo phương thức ảo (virtual method) đúng là đặt từ khóa virtual ở phía trước kiểu trả về của phương thức. Các cách khai báo khác đều không hợp lệ.
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
- Phương án 1: Chỉ có phương thức Di_chuyển. Mặc dù Di_chuyển là một hành vi chung quan trọng, nhưng chưa đủ để mô tả đầy đủ lớp cơ sở, vì lớp cơ sở nên chứa cả những thuộc tính chung.
- Phương án 2: Bao gồm Loại phương tiện và Di_chuyển. Tuy nhiên, Loại phương tiện nên là một thuộc tính, không phải là phương thức. Hơn nữa, vẫn thiếu các thuộc tính quan trọng khác.
- Phương án 3: Bao gồm các thuộc tính Tải_trọng, Loại_động_cơ, Loại_phương_tiện, Biển_số. Phương án này liệt kê các thuộc tính chung, nhưng lại thiếu hành vi chung (phương thức) là Di_chuyển.
- Phương án 4: Bao gồm đầy đủ các thuộc tính chung (Tải_trọng, Loại_động_cơ, Loại_phương_tiện, Biển_số) và hành vi chung (Di_chuyển). Đây là phương án đầy đủ và chính xác nhất để mô tả lớp cơ sở PT_Giao_Thông.
Vậy, đáp án đúng là phương án 4.
Phân tích yêu cầu:
- Cần quản lý thông tin chung của công dân (họ tên, tuổi, giới tính, ...).
- Cần quản lý thông tin về việc đủ điều kiện nhập ngũ (nam giới, từ 18 tuổi trở lên, không học đại học/cao đẳng).
Như vậy, cần một lớp (class) để lưu trữ thông tin chung của công dân, và một lớp (class) khác kế thừa từ lớp công dân, để lưu trữ thông tin về những công dân nam đủ điều kiện nhập ngũ.
Đánh giá các đáp án:
- Đáp án 1: Lớp công dân và lớp Công dân nhập ngũ. Cách đặt tên "Công dân nhập ngũ" không thể hiện rõ ràng yếu tố giới tính (nam giới) là một điều kiện bắt buộc để nhập ngũ.
- Đáp án 2: Lớp công dân và lớp Công dân nam nhập ngũ. Cách đặt tên "Công dân nam nhập ngũ" thể hiện rõ ràng các công dân thuộc lớp này phải là nam giới và đủ điều kiện nhập ngũ. Đây là đáp án chính xác nhất.
- Đáp án 3: Lớp công dân. Chỉ có một lớp công dân là không đủ để thể hiện và quản lý điều kiện nhập ngũ (giới tính, độ tuổi, tình trạng học vấn).
Các phương án khác:
- Xây dựng phương thức nhập/xuất: Không bắt buộc. Việc nhập/xuất dữ liệu phụ thuộc vào yêu cầu của bài toán, không liên quan trực tiếp đến việc quản lý con trỏ/tham chiếu.
- Không bắt buộc phải xây dựng gì hết: Sai. Nếu có con trỏ/tham chiếu mà không có hàm hủy, có thể gây ra lỗi rò rỉ bộ nhớ hoặc lỗi khác liên quan đến quản lý tài nguyên.
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.
Cho lớp Lophoc được khai báo như trên, với khai báo public Lophoc (string str); là khai báo:


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.
.jpg)


