TAILIEUCHUNG - Quá tải các toán tử

Quá tải các toán tử C++ cho phép sử dụng các toán tử chuẩn của ngôn ngữ giữa các lớp giống như với các kiểu dữ liệu cơ bản. Ví dụ: int a, b, c; a = b + c; là hoàn toàn hợp lệ vì các biến ở đây đều có kiểu là các kiểu dữ liệu cơ bản. Tuy nhiên, việc chúng ta có thể thực hiện thao tác sau đây có vẻ không hiển nhiên lắm (thực tế là nó không hợp lệ): struct { char product [50]; float price; } a, b, c; a = b +. | Quá tải các toán tử C cho phép sử dụng các toán tử chuẩn của ngôn ngữ giữa các lớp giống như với các kiểu dữ liệu cơ bản. Ví dụ int a b c a b c là hoàn toàn hợp lệ vì các biến ở đây đều có kiểu là các kiểu dữ liệu cơ bản. Tuy nhiên việc chúng ta có thể thực hiện thao tác sau đây có vẻ không hiển nhiên lắm thực tế là nó không hợp lệ struct char product 50 float price a b c a b c Phép gán một lớp hay một cấu trúc với một đối tượng cùng kiểu là được phép copy constructor mặc định . Nhưng phép cộng sẽ gây ra lỗi vì nó được dùng với các kiểu dữ liệu không cơ bản. Nhưng cần phải cám ơn khả năng quá tải toán tử của C chúng ta có thể làm cho các đối tượng kiểu như trên có thể chấp nhận các toán tử đó mà không làm thay đổi ý nghĩa của nó đối với các kiểu dữ liệu cơ bản. Dưới đây là danh sách tất cả các toán tử có thể được quá tải - - ọ- o A A l ll - o new delete Để làm quá tải một toán tử chúng ta chỉ cần viết một hàm thành viên của lớp có tên operator theo sau là toán tử chúng ta muốn làm quá tải. Mẫu như sau type operator sign parameters Dưới đây là ví dụ về việc quá tải toán tử . Chúng ta chuẩn bị tính tổng hai vector hai chiều a 3 1 và b 1 2 . Phép cộng giữa hai vector hai chiều chỉ đơn giản là cộng hai toạ độ x để lấy toạ độ kết quả x cộng hai toạ độ y để lấy toạ độ kết quả y. Trong trường hợp này kết quả sẽ là 3 1 1 2 4 3 . vectors ví dụ về quá 4 3 tải toán tử include class CVector public int x y CVector CVector int int CVector operator CVector CVector CVector int a int b x a y b CVector CVector operator CVector param CVector temp x y return temp int main CVector a 3 1 CVector b 1 2 CVector c c a b cout return 0 Nếu bạn thấy quá nhiều CVector hãy để ý rằng một số trong chúng tham chiếu đến tên lớp CVector còn số còn lại là tên các hàm constructor và destructor . Đừng lẫn lộn CVector int int constructor Hàm có tên Vector CVector operator CVector Hàm operator trả về kiểu CVector Hàm operator của lớp CVector được dùng để .

TỪ KHÓA LIÊN QUAN
Đã phát hiện trình chặn quảng cáo AdBlock
Trang web này phụ thuộc vào doanh thu từ số lần hiển thị quảng cáo để tồn tại. Vui lòng tắt trình chặn quảng cáo của bạn hoặc tạm dừng tính năng chặn quảng cáo cho trang web này.