Toán tử so sánh quá tải C++ trong

Toan Tu So Sanh Qua Tai C Trong



Nạp chồng toán tử là một khái niệm quan trọng trong C++ cho phép bạn đạt được chức năng của các toán tử tích hợp trong khi làm việc với các kiểu dữ liệu do người dùng xác định. Các toán tử so sánh trong C++ là những toán tử dùng để so sánh hai giá trị với nhau, chẳng hạn như “==”, “!=”, “>”, “<”, “>=”, và “<=”. Bài viết này sẽ chia sẻ các phương pháp nạp chồng cả sáu toán tử so sánh này trong C++ trên Ubuntu 20.04.

Ví dụ #1: Nạp chồng Toán tử “==” trong C++:

Để nạp chồng toán tử “==” trong C++, chúng tôi đã thiết kế lớp C++ sau:







Tên lớp C++ của chúng ta là ProductPrice. Trong lớp này, chúng tôi có một thành viên riêng 'giá'. Sau đó, chúng tôi có một số chức năng thành viên công cộng. Hàm đầu tiên, có tên là “userInput”, lấy giá sản phẩm làm đầu vào từ người dùng. Sau đó, chúng ta có chức năng nạp chồng toán tử “==” trong C++. Chúng ta đã truyền một đối tượng của lớp ProductPrice cho hàm này. Trong hàm này, chúng ta có một câu lệnh “if” sẽ trả về “true” nếu giá của hai sản phẩm bằng nhau, ngược lại là “false”.



Để kiểm tra điều này, chúng tôi có chức năng trình điều khiển được hiển thị trong hình bên dưới:







Trong hàm “main()” của chúng ta, trước tiên chúng ta đã tạo hai đối tượng của lớp. Sau đó, chúng tôi đã gọi hàm “userInput” với từng đối tượng trong số hai đối tượng để lấy giá của hai sản phẩm làm đầu vào từ người dùng. Sau đó, chúng ta có câu lệnh “if” để in thông báo nếu hai giá bằng nhau và thông báo khác nếu không.

Chúng tôi đã biên dịch chương trình này bằng lệnh sau:



$ g++ So sánhOperator.cpp –o So sánhOperator

Sau đó, chúng tôi đã thực hiện nó bằng lệnh hiển thị bên dưới:

$ . / toán tử so sánh

Khi thực thi mã này, chúng tôi được yêu cầu nhập giá của sản phẩm đầu tiên như trong hình sau:

Sau đó, chúng tôi được yêu cầu nhập giá của sản phẩm thứ hai như trong hình bên dưới:

Vì chúng tôi đã nhập cùng một mức giá cho cả hai sản phẩm, nên chúng tôi có thể thấy trong kết quả sau đây rằng toán tử “==” của chúng tôi đã được quá tải thành công.

Bây giờ, để kiểm tra câu lệnh “else”, chúng tôi đã nhập hai giá sản phẩm khác nhau, như trong hình bên dưới:

Ví dụ #2: Nạp chồng toán tử “!=” trong C++:

Để nạp chồng toán tử “!=” trong C++, chúng tôi đã thiết kế lớp C++ sau:

Chương trình này trông rất giống với ví dụ đầu tiên của chúng tôi. Sự khác biệt duy nhất là chúng tôi đã thay thế toán tử “==” bằng toán tử “!=” ở mọi nơi.

Để kiểm tra điều này, chúng tôi có chức năng trình điều khiển được hiển thị trong hình bên dưới:

Chúng tôi đã gọi hàm “userInput” trong hàm “main()” của mình với từng đối tượng trong số hai đối tượng để lấy giá của hai sản phẩm làm đầu vào từ người dùng. Sau đó, chúng ta có một câu lệnh “if” để in một thông báo nếu hai giá không bằng nhau và một thông báo khác nếu chúng bằng nhau.

Khi chúng tôi thực thi mã này với hai giá sản phẩm khác nhau, chúng tôi phát hiện ra rằng toán tử bất đẳng thức của chúng tôi đã được nạp chồng thành công, như bạn có thể thấy từ hình ảnh sau:

Bây giờ, để kiểm tra câu lệnh “else”, chúng tôi đã nhập hai giá sản phẩm tương tự, như trong hình bên dưới:

Ví dụ #3: Nạp chồng toán tử “>” trong C++:

Để nạp chồng toán tử “>” trong C++, chúng tôi đã thiết kế lớp C++ sau:

Chương trình này cũng tương tự như các ví dụ của chúng tôi ở trên. Sự khác biệt duy nhất là chúng tôi đã thay thế toán tử “!=” bằng toán tử “>” ở mọi nơi.

Để kiểm tra điều này, chúng tôi có chức năng trình điều khiển được hiển thị trong hình bên dưới:

Chúng tôi đã gọi hàm “userInput” trong hàm “main()” của mình với từng đối tượng trong số hai đối tượng để lấy giá của hai sản phẩm làm đầu vào từ người dùng. Sau đó, chúng tôi có một câu lệnh “nếu” để in một thông báo nếu giá đầu tiên lớn hơn giá kia và một thông báo khác nếu không.

Khi chúng tôi thực thi mã này với hai giá sản phẩm khác nhau, chúng tôi phát hiện ra rằng toán tử lớn hơn của chúng tôi đã được quá tải thành công, như bạn có thể thấy từ hình ảnh sau:

Bây giờ, để kiểm tra câu lệnh “else”, chúng tôi đã nhập hai giá sản phẩm tương tự, như trong hình bên dưới:

Ví dụ #4: Nạp chồng Toán tử “<” trong C++:

Để nạp chồng toán tử “<” trong C++, chúng tôi đã thiết kế lớp C++ sau:

Chương trình này cũng tương tự như các ví dụ của chúng tôi ở trên. Sự khác biệt duy nhất là chúng tôi đã thay thế toán tử “>” bằng toán tử “<” ở mọi nơi.

Để kiểm tra điều này, chúng tôi có chức năng trình điều khiển được hiển thị trong hình bên dưới:

Chúng tôi đã gọi hàm “userInput” trong hàm “main()” của mình với từng đối tượng trong số hai đối tượng để lấy giá của hai sản phẩm làm đầu vào từ người dùng. Sau đó, chúng ta có câu lệnh “if” để in thông báo nếu giá đầu tiên thấp hơn giá kia và một thông báo khác nếu không.

Khi chúng tôi thực thi mã này với hai giá sản phẩm khác nhau, chúng tôi phát hiện ra rằng toán tử less than của chúng tôi đã bị quá tải thành công, như bạn có thể thấy từ hình ảnh sau:

Bây giờ, để kiểm tra câu lệnh “else”, chúng tôi đã nhập lại hai giá sản phẩm khác nhau, nhưng lần này, giá của sản phẩm đầu tiên lớn hơn giá của sản phẩm thứ hai, như trong hình bên dưới:

Ví dụ #5: Nạp chồng Toán tử “>=” trong C++:

Để nạp chồng toán tử “>=” trong C++, chúng tôi đã thiết kế lớp C++ sau:

Điều này hơi khác so với các ví dụ của chúng tôi ở trên. Trong khi nạp chồng toán tử lần này, chúng ta có hai điều kiện trong câu lệnh “if” được phân tách bằng dấu “||” Biểu tượng. Có nghĩa là câu lệnh này sẽ kiểm tra xem giá của một sản phẩm có lớn hơn hoặc bằng một sản phẩm khác hay không.

Để kiểm tra điều này, chúng tôi có chức năng trình điều khiển được hiển thị trong hình bên dưới:

Chúng tôi đã gọi hàm “userInput” trong hàm “main()” của mình với từng đối tượng trong số hai đối tượng để lấy giá của hai sản phẩm làm đầu vào từ người dùng. Sau đó, chúng ta có câu lệnh “if” để in thông báo nếu giá đầu tiên lớn hơn hoặc bằng giá kia và một thông báo khác nếu không.

Khi chúng tôi thực thi mã này với hai giá sản phẩm khác nhau, chúng tôi phát hiện ra rằng toán tử lớn hơn hoặc bằng của chúng tôi đã được quá tải thành công, như bạn có thể thấy từ hình ảnh sau:

Bây giờ, để kiểm tra câu lệnh “khác”, chúng tôi đã nhập giá sản phẩm đầu tiên thấp hơn giá sản phẩm thứ hai, như trong hình bên dưới:

Ví dụ #6: Nạp chồng Toán tử “<=” trong C++:

Theo phương pháp tương tự như ví dụ thứ năm của chúng tôi, chúng tôi cũng đã quá tải toán tử “<=” và mã của nó như sau:

Kết quả thực hiện của chương trình này với các giá trị khác nhau được hiển thị trong các hình ảnh bên dưới:

Sự kết luận:

Bài viết này đã giải thích rất rõ về cách bạn có thể quá tải sáu toán tử so sánh trong C++ trên Ubuntu 20.04. Chúng ta bắt đầu với phần giới thiệu ngắn gọn về nạp chồng toán tử, sau đó tất cả sáu toán tử so sánh trong C++ đều được nạp chồng. Chúng tôi đã sử dụng cùng một lớp do người dùng định nghĩa để minh họa tất cả các phương pháp này. Khi bạn thực hiện xong các phương thức này, bạn sẽ có thể nạp chồng các toán tử so sánh này cho bất kỳ lớp nào khác do người dùng định nghĩa.