Xem Nhiều 5/2022 # Nạp Chồng Toán Tử Và Nạp Chồng Hàm # Top Trend

Xem 12,771

Cập nhật thông tin chi tiết về Nạp Chồng Toán Tử Và Nạp Chồng Hàm mới nhất ngày 18/05/2022 trên website Doisonggiaitri.com. Hy vọng nội dung bài viết sẽ đáp ứng được nhu cầu của bạn, chúng tôi sẽ thường xuyên cập nhật mới nội dung để bạn nhận được thông tin nhanh chóng và chính xác nhất. Cho đến thời điểm hiện tại, bài viết này đã đạt được 12,771 lượt xem.

--- Bài mới hơn ---

  • Chi Tiết Bài Học Nạp Chồng Toán Tử Trong C++
  • Nạp Chồng Toán Tử Input/output Trong C++
  • Nạp Chồng Toán Tử ++ Và
  • Nạp Chồng Hàm (Function Overloading)
  • Khả Năng Truy Cập Của Public Và Private Trong C++ ” Cafedev.vn
  • Ngôn ngữ C++ cho phép bạn xác định nhiều hơn một định nghĩa cho một tên hàm hoặc một toán tử trong cùng phạm vi (scope), được gọi tương ứng là Nạp chồng hàm (function overloading)Nạp chồng toán tử (operator overloading).

    Khi bạn gọi một hàm nạp chồng hoặc một toán tử nạp chồng, thì trình biên dịch quyết định định nghĩa thích hợp nhất để sử dụng bằng việc so sánh các kiểu tham số bạn đã sử dụng để gọi hàm hoặc toán tử với các kiểu tham số đã được xác định trong các định nghĩa. Tiến trình lựa chọn hàm nạp chồng hoặc toán tử nạp chồng thích hợp nhất này được gọi là phân giải nạp chồng ( overload resolution ).

    Nạp Chồng Hàm

    Trong ví dụ trên, sau khi chạy chương trình ta nhận được kết quả

    Nhưng nếu ta thay int_max(4,5) thành int_max(4.4,5.5) thì kết quả nhận được vẫn là giống phía trên, do khi khao báo hàm ta truyền vào 2 tham số thuộc kiểu int. Vậy để có kết quả đúng là 5.5 thì ta phải viết thêm một hàm mới.

    Như vậy, ta sẽ có nhiều hàm với các tên gọi khác nhau. Việc sử dụng tên như vậy sẽ gây bất lợi cho người lập trình khi gọi hàm. Nạp chồng hàm ra đời để giải quyết vấn đề trên.

    Nạp chồng hàm

    Nạp chồng hàm (Function Overloading) là một kiến thức khá mới mẻ đối với các bạn mới bắt đầu làm quen với C++. Bởi vì kiến thức này không hề tồn tại trong C mà chỉ có ở C++.

    Kỹ thuật này cho phép sử dụng cùng một tên gọi cho các hàm “giống nhau” (có cùng mục đích). Nhưng khác nhau về kiểu dữ liệu tham số hoặc số lượng tham số.

    Quay về với ví dụ trên

    Nạp chồng hàm cho phép ta khai báo và định nghĩa các hàm trên cùng với một tên gọi.

    Sau khi chạy ta có kết quả

    Nạp Chồng Toán Tử

    Nạp chồng toán tử (Operator Overloading) được dùng để định nghĩa toán tử cho có sẵn trong c++ phục vụ cho dữ liệu riêng do bạn tạo ra.

    Giả sử có lớp PhanSo và có các phương thức tính toán như Cong, Tru, Nhan, Chia.

    Nếu gặp một biểu thức phức tạp, số lượng phép tính nhiều thì việc sử dụng các phương thức trên khá khó khăn và có thể gây rối cho người lập trình. Vì thế ta sẽ nạp chồng lại các toán tử để có thể tạo một cái nhìn trực quan vào code, giảm thiểu các lỗi sai không đáng có.

    Các loại toán tử

    • C++ chỉ cho phép người dùng overloading lại các toán tử có sẵn trong c++
    • Một toán tử có thể được định nghĩa cho nhiều kiểu dữ liệu khác nhau.

    Toán tử đơn là toán tử một ngôi (unary operator), có thể được dùng làm toán tử trước (pfix operator) và toán tử sau (postfix operator). Ví dụ phép tăng (++) hay phép giảm (–)

    • pfix operator: ++i;
    • postfix operator: i++;

    Toán tử đôi

    Toán tử đôi là toán tử có 2 ngôi (binary operator).

    Ví dụ:

    Ví dụ: như A+B, A*B, hay toán tử chỉ mục [...] cũng là toán tử đôi.

    Các toán tử có thể nạp chồng

    Nạp chồng toán tử 1 ngôi

    Ta truyền Input:

    Sau khi chạy chương trình ta có kết quả:

    Trong phần code trên, mình đã nạp chồng toán tử + cho lớp phân số bằng cách nạp chồng toán tử 1 ngôi ( chỉ có thể truyền vào một tham số )

    Với cách nạp chồng này ta có thể coi nó là một phương thức của lớp:

      Tên phương thức sẽ có dạng operator @ – trong đó @ là toán tử cần nạp chồng

    Nạp chồng toán tử 2 ngôi

    Vẫn với Input như trên

    Sau khi biên dịch và chạy chương trình, kết quả vẫn nhận được là:

    Với cách nạp chồng toán tử 2 ngôi này, thì hàm nạp chồng được coi là một hàm bạn của lớp:

    • Có từ khoá friend ở đầu
    • Tên hàm là operator @– Trong đó @ vẫn là toán tử cần nạp chồng
    • 2 tham số được truyền vào là 2 giá trị thực hiện phép toán

    Nếu không nhớ Hàm Bạn là gì? Bạn có thể xem lại: Tại Đây

    Nạp chồng toán tử nhập, xuất

    Việc nạp chồng toán tử nhập xuất cho phép người dùng dùng cin, cout nhập xuất nhanh một đối tượng mà không cần gọi lại cin, cout cho từng thuộc tính của dữ liệu dựa trên việc được định nghĩa trước.

    Input:

    Output:

    Nạp chồng toán tử gán

    Cú pháp và cách xử lý ở đây gần giống với Hàm khởi tạo sao chép

    Tài Liệu Tham Khảo

    1. Function Overloading – Geeksforgeeks
    2. Operator Overloading – Geeksforgeeks
    Các bài viết trong khóa học

    --- Bài cũ hơn ---

  • Ghi Đè Phương Thức Override Trong Java
  • Tìm Hiểu Tính Đa Hình Trong C#
  • Sự Ra Đời Của Phương Thức Khởi Tạo (Constructor), Phương Thức Hủy (Destructor) Trong Một Class
  • Bạn Hiểu Gì Về Danh Sách Liên Kết Đơn Trong C++
  • Cách Cài Đặt Danh Sách Liên Kết Đơn Sử Dụng Code C++
  • Bạn đang xem bài viết Nạp Chồng Toán Tử Và Nạp Chồng Hàm trên website Doisonggiaitri.com. Hy vọng những thông tin mà chúng tôi đã chia sẻ là hữu ích với bạn. Nếu nội dung hay, ý nghĩa bạn hãy chia sẻ với bạn bè của mình và luôn theo dõi, ủng hộ chúng tôi để cập nhật những thông tin mới nhất. Chúc bạn một ngày tốt lành!

  • Web hay
  • Links hay
  • Guest-posts
  • Push
  • Chủ đề top 10
  • Chủ đề top 20
  • Chủ đề top 30
  • Chủ đề top 40
  • Chủ đề top 50
  • Chủ đề top 60
  • Chủ đề top 70
  • Chủ đề top 80
  • Chủ đề top 90
  • Chủ đề top 100
  • Bài viết top 10
  • Bài viết top 20
  • Bài viết top 30
  • Bài viết top 40
  • Bài viết top 50
  • Bài viết top 60
  • Bài viết top 70
  • Bài viết top 80
  • Bài viết top 90
  • Bài viết top 100
  • Chủ đề top 10
  • Chủ đề top 20
  • Chủ đề top 30
  • Chủ đề top 40
  • Chủ đề top 50
  • Chủ đề top 60
  • Chủ đề top 70
  • Chủ đề top 80
  • Chủ đề top 90
  • Chủ đề top 100
  • Bài viết top 10
  • Bài viết top 20
  • Bài viết top 30
  • Bài viết top 40
  • Bài viết top 50
  • Bài viết top 60
  • Bài viết top 70
  • Bài viết top 80
  • Bài viết top 90
  • Bài viết top 100