Sự khác biệt giữa chức năng ảo và chức năng ghi đè là gì?
Sự khác biệt giữa chức năng ảo và chức năng ghi đè là gì?

Video: Sự khác biệt giữa chức năng ảo và chức năng ghi đè là gì?

Video: Sự khác biệt giữa chức năng ảo và chức năng ghi đè là gì?
Video: T4vn.com - [C#] OOP - Bài 9: Sự khác nhau giữa phương thức ghi đè và ẩn 2024, Tháng tư
Anonim

Các chức năng ảo không thể tĩnh và cũng không thể là bạn hàm số của lớp khác. Chúng luôn được định nghĩa trong lớp cơ sở và ghi đè trong lớp dẫn xuất. Lớp dẫn xuất không bắt buộc phải ghi đè (hoặc xác định lại chức năng ảo ), trong trường hợp đó, phiên bản lớp cơ sở của hàm số Được sử dụng.

Hơn nữa, sự khác biệt giữa chức năng ảo và chức năng ảo thuần túy là gì?

Chính sự khác biệt giữa ' chức năng ảo 'và' chức năng ảo thuần túy 'đó là' chức năng ảo 'có định nghĩa của nó bên trong lớp cơ sở và cả các lớp dẫn xuất kế thừa định nghĩa lại nó. Các chức năng ảo thuần túy không có định nghĩa bên trong lớp cơ sở và tất cả các lớp dẫn xuất kế thừa phải định nghĩa lại nó.

Sau đó, câu hỏi đặt ra là, chức năng ghi đè trong C ++ là gì? Ghi đè hàm trong C ++ . Nếu lớp dẫn xuất định nghĩa giống nhau hàm số như được định nghĩa trong lớp cơ sở của nó, nó được gọi là ghi đè chức năng trong C ++. Nó được sử dụng để đạt được tính đa hình thời gian chạy. Nó cho phép bạn cung cấp triển khai cụ thể của hàm số mà đã được cung cấp bởi lớp cơ sở của nó.

Tương tự như vậy, mọi người hỏi, tại sao chúng ta sử dụng các hàm ảo?

Chức năng ảo là đã sử dụng để hỗ trợ "Tính đa hình thời gian chạy". Khi mà chức năng ảo được gọi bằng cách sử dụng Con trỏ lớp cơ sở, Trình biên dịch quyết định trong Thời gian chạy phiên bản nào của hàm số tức là phiên bản Lớp cơ sở hoặc phiên bản Lớp có nguồn gốc bị ghi đè sẽ được gọi. Đây được gọi là Đa hình thời gian chạy.

Bạn có thể ghi đè một hàm không phải ảo trong C ++ không?

Trong c ++, tất cả thành viên lớp chức năng là không - ảo theo mặc định. Họ có thể được làm ảo bằng cách sử dụng ảo từ khóa trong hàm số Chữ ký. Như đã nêu ở trên nếu như NS hàm số của lớp cơ sở được thực hiện ảo sau đó hàm số của Derived hoặc Child class's hàm số cùng tên có thể ghi đè của lớp cơ sở hàm số.

Đề xuất: