Khi nạp chồng các hàm thì điều kiện khác nhau giữa các hàm sẽ là:
A.
A. Số lượng tham số truyền vào các hàm (3)
B.
B. Kiểu dữ liệu của tham số truyền vào của hàm (2)
C.
C. Hoặc (1) hoặc (2) hoặc (3)
D.
D. Kiểu dữ liệu trả về hàm (1)
Trả lời:
Đáp án đúng: C
Khi nạp chồng hàm (function overloading), các hàm có cùng tên nhưng phải khác nhau về số lượng tham số, kiểu dữ liệu của tham số, hoặc cả hai. Kiểu dữ liệu trả về của hàm không phải là yếu tố để phân biệt các hàm nạp chồng. Vì vậy, đáp án C là chính xác nhất, bao gồm cả số lượng và kiểu dữ liệu của tham số.
Trong lập trình hướng đối tượng, một lớp (class) có thể có nhiều hàm dựng (constructor). Các hàm dựng này phải khác nhau về số lượng hoặc kiểu dữ liệu của các tham số (đối số) truyền vào. Điều này cho phép tạo ra các đối tượng của lớp với các trạng thái khởi tạo khác nhau. Do đó, đáp án D là chính xác.
Trong C++, một lớp chỉ có thể có duy nhất một hàm hủy (destructor). Hàm hủy được sử dụng để giải phóng tài nguyên mà đối tượng của lớp đã chiếm giữ khi đối tượng đó bị hủy. Nếu một lớp có nhiều hơn một hàm hủy, trình biên dịch sẽ không biết hàm hủy nào cần gọi khi đối tượng bị hủy, gây ra lỗi.
* **Phương án A:** Sai. Một lớp không thể chứa vô số hàm hủy.
* **Phương án B:** Sai. Một lớp không thể chứa ba hàm hủy.
* **Phương án C:** Đúng. Một lớp chỉ có thể có duy nhất một hàm hủy.
* **Phương án D:** Sai. Một lớp không thể chứa tối đa hai hàm hủy.
Trong lập trình hướng đối tượng, kế thừa là một cơ chế cho phép một lớp (lớp con) kế thừa các thuộc tính và phương thức từ một lớp khác (lớp cha). Kế thừa có thể diễn ra nhiều cấp, tức là một lớp con có thể kế thừa từ một lớp cha, và lớp cha này lại kế thừa từ một lớp cha khác nữa, và cứ tiếp tục như vậy. Về mặt lý thuyết, số lượng mức kế thừa là không giới hạn, nó chỉ bị giới hạn bởi tài nguyên hệ thống (ví dụ: bộ nhớ).
Do đó, đáp án đúng là B: Vô số tùy theo bộ nhớ.
Trong đa kế thừa (multiple inheritance), một lớp có thể kế thừa từ nhiều lớp cha (lớp cơ sở) khác nhau. Số lượng lớp cha mà một lớp có thể kế thừa không bị giới hạn bởi một con số cụ thể (như một, hai hoặc ba lớp). Thay vào đó, số lượng lớp mà một lớp có thể kế thừa trong đa kế thừa thường chỉ bị giới hạn bởi các ràng buộc về mặt thiết kế và khả năng quản lý độ phức tạp của hệ thống. Vì vậy, đáp án đúng là "Vô số lớp tùy theo bộ nhớ" vì nó phản ánh đúng bản chất của đa kế thừa, mặc dù trong thực tế, việc kế thừa quá nhiều lớp có thể dẫn đến các vấn đề về độ phức tạp và khó bảo trì.
Lập trình hướng đối tượng (OOP) là một phương pháp lập trình đặt trọng tâm vào các đối tượng. Các đối tượng này bao gồm dữ liệu (thuộc tính) và các hàm (phương thức) thao tác trên dữ liệu đó. OOP cho phép đóng gói dữ liệu và phương thức lại với nhau, tạo thành một thực thể độc lập. Điều này giúp tăng tính modularity, tái sử dụng và bảo trì của code. Phương án B mô tả chính xác điều này.