Trong bài học này chúng ta sẽ cùng tìm hiểu cách nạp chồng 1 số toán tử khác như toán tử so sánh, toán tử định vị,… Nào cố lên!
Nạp chồng toán tử gán
Toán tử gán (assignment operator - kí hiệu: =) là toán tử thường thấy nhất trong mọi câu lệnh, chúng ta sẽ dùng nó để gán giá trị cho đối tượng lớp PhanSo. Code nào:
Cũng không có gì để giải thích, nhìn qua thì giống copy constructor thôi, lưu ý trả về đối tượng *this nhé.
Nạp chồng toán tử so sánh
Các toán tử so sánh thường gặp như: ==, !=, <=, >=. Cách cài đặt chúng không quá khó, các bạn chỉ cần nắm được logic hoạt động của nó là được, chúng ta sẽ cài đặt chúng 1 lần nữa trên lớp PhanSo và mình sẽ lấy 2 toán tử là == và > để cài đặt, các toán tử kia các bạn tự triển khai nha!
Cũng khá dễ hiểu các bạn đọc và code lại nhé.
Nạp chồng toán tử chỉ mục
Toán tử chỉ mục [] (subscript operator) được dùng để xác định phần tử trong mảng dựa trên chỉ mục (index). Khi class của bạn có thuộc tính là mảng, đây là cách tốt nhất để truy cập các phần tử trong mảng đó từ đối tượng của class. Cùng xem cách mình cài đặt nhé (đương nhiên không phải trên lớp PhanSo nữa rồi):
Chúng ta không cần phải cài đặt lại toán tử xuất vì giá trị trả về của toán tử chỉ mục có kiểu int - kiểu cơ bản có thể được xuất ra bình thường.
Trong phần cài đặt mình có dùng hàm assert của thư viện cassert để kiểm tra và báo lỗi khi giá trị index nhập vào không hợp lệ! Các bạn có thể chạy xem thử nhé
Nạp chồng toán tử ngoặc đơn
Giống toán tử chỉ mục, toán tử ngoặc đơn cũng dùng để xác định vị trí của phần tử trong mảng nhưng là mảng đa chiều. Đoạn code dưới sẽ giúp các bạn dễ hình dung hơn:
Tổng kết
Phù ~ Vậy là chúng ta đã cũng đã tìm hiểu khá nhiều cách cài đặt 1 số toán tử cho class rồi đúng không? Các bạn nhớ ôn lại để nắm được logic code và câu lệnh cài đặt nhé. Có thắc mắc các bạn bình luận bên dưới để tụi mình giải đáp nha. Pie~