Video: [Bài tập C#] - Bài 11 - So sánh 2 số a, b và xuất ra kết quả so sánh - HowKteam 2025
Các kiểu dữ liệu nội tại được xây dựng trong ngôn ngữ C ++, chẳng hạn như int , float , và tăng gấp đôi và các loại con trỏ khác nhau. C ++ cho phép lập trình viên xác định các toán tử cho các lớp mà lập trình đã tạo ra ngoài các toán tử nội tại này. Điều này được gọi là nhà khai thác quá tải.
Thông thường, quá tải của nhà điều hành là tùy chọn và không cố gắng bằng cách bắt đầu trình biên dịch C ++. Rất nhiều C + + có kinh nghiệm lập trình không nghĩ rằng nhà điều hành quá tải là một ý tưởng hay. Tuy nhiên, bạn sẽ phải học làm thế nào để quá tải một toán tử: nhà điều hành phân công.
Một toán tử không chỉ là một hàm tích hợp với một cú pháp đặc biệt. Hoạt động bổ sung sau
a + b
có thể được hiểu như là nó đã được viết
toán tử + (a, b)
Trong thực tế, C ++ cung cấp cho mỗi toán tử một tên kiểu chức năng. Tên chức năng của toán tử là biểu tượng toán tử trước từ toán tử và theo sau là các loại đối số thích hợp. Ví dụ, toán tử + thêm một int vào một int tạo ra một int được gọi là int operator + (int, int).
Bất kỳ toán tử hiện tại nào cũng có thể được định nghĩa cho một lớp người dùng định nghĩa. Vì vậy, tôi có thể tạo ra một toán tử Complex * (const Complex, và const Complex &) cho phép tôi nhân hai đối tượng kiểu Complex . Nhà khai thác mới có thể có cùng một ngữ nghĩa như người điều khiển nó quá tải, nhưng nó không phải. Các quy tắc sau áp dụng khi quá tải toán tử:
-
Lập trình viên không thể quá tải . (chấm), :: (dấu hai chấm), . *, * ->, sizeof và ?: Các nhà khai thác (ternary).
-
Lập trình viên không thể phát minh ra một toán tử mới. Ví dụ, bạn không thể phát minh ra thao tác x $ y .
-
Không thể thay đổi cú pháp của toán tử. Vì vậy, bạn không thể xác định một thao tác% i vì% đã được định nghĩa là một toán tử nhị phân.
-
Sự ưu tiên của trình điều khiển không thể thay đổi. Một chương trình không thể ép toán tử + được đánh giá trước toán tử * .
-
Các toán tử không thể được định nghĩa lại khi áp dụng cho các kiểu nội tại - bạn không thể thay đổi ý nghĩa của 1 + 2. Các toán tử hiện tại có thể bị quá tải chỉ đối với các loại mới được xác định.
Các nhà khai thác quá tải là một trong những điều mà có vẻ như là một ý tưởng tốt hơn nhiều so với thực tế. Thông thường, người vận hành quá tải giới thiệu nhiều vấn đề hơn nó giải quyết.