Wikipedia quote:
Các override nhận dạng đặc biệt có nghĩa là trình biên dịch sẽ kiểm tra các lớp cơ sở (es) để xem liệu có một hàm ảo với chữ ký chính xác này không. Và nếu không có, trình biên dịch sẽ lỗi.
http://en.wikipedia.org/wiki/C%2B%2B11#Explicit_overrides_and_final
Chỉnh sửa (cố gắng để cải thiện một chút câu trả lời):
Khai báo một phương pháp là "ghi đè" có nghĩa là rằng phương pháp dành để viết lại một phương pháp (ảo) trên lớp cơ sở. Phương thức ghi đè phải có cùng một chữ ký (ít nhất là cho các tham số đầu vào) làm phương thức mà nó dự định viết lại.
Tại sao điều này lại cần thiết? Vâng, hai trường hợp lỗi phổ biến sau đây được ngăn chặn:
một loại mờ theo kiểu mới. Trình biên dịch, không biết rằng nó có ý định viết một phương thức trước đó, chỉ cần thêm nó vào lớp như một phương thức mới. Vấn đề là phương pháp cũ vẫn còn đó, phương thức mới được thêm vào chỉ là quá tải. Trong trường hợp này, tất cả các cuộc gọi hướng tới phương thức cũ sẽ hoạt động giống như trước, mà không có bất kỳ thay đổi nào về hành vi (mà có thể là mục đích của việc viết lại).
một lần quên khai báo phương thức trong siêu lớp là "ảo", nhưng vẫn cố gắng viết lại nó trong lớp con. Trong khi điều này sẽ được chấp nhận, hành vi sẽ không chính xác như dự định: phương thức không phải là ảo, do đó truy cập thông qua con trỏ tới lớp cha sẽ kết thúc gọi phương thức cũ (superclass ') thay vì phương thức mới (lớp con).
Thêm "override" rõ ràng disambiguates này: qua chuyện này, người ta đang nói với trình biên dịch rằng ba điều đang mong đợi:
- có một phương pháp có cùng tên trong lớp cha
- này phương thức trong siêu lớp được khai báo là "ảo" (có nghĩa là, dự định được viết lại)
- phương thức trong lớp cha có cùng chữ ký (đầu vào *) làm phương thức trong lớp con (phương pháp viết lại)
Nếu bất kỳ điều nào trong số này là sai, thì lỗi được báo hiệu.
* lưu ý: thông số đầu ra đôi khi khác, nhưng loại có liên quan. Đọc về biến đổi covariant và contravariant nếu quan tâm.
Có. –
Tuy nhiên, đây không phải là séc kép. Đó là kiểm tra duy nhất. –
@Nikos tốt điểm;), cố định – aiao