7.1.11 Toán tử độc lập

Việc thực hiện nạp chồng toán tử với các hàm thành viên là rất dễ dàng khi bạn là “chủ sở hữu” của lớp vì bạn có thể sửa đổi mã nguồn của nó. Có những trường hợp không thể làm vậy vì không có source code. Tất nhiên, trong rất nhiều trường hợp bạn có thể viết các lớp con của riêng bạn chứa tất cả các toán tử mong muốn, tuy nhiên trong một số trường hợp điều này khá bất tiện.

Rất may là bạn được phép viết các toán tử bên ngoài lớp. Trong trường hợp của chúng ta, một hàm của toán tử độc lập phải có hai tham số và thứ tự của các tham số của hàm sẽ phản ánh thứ tự các đối số của toán tử.

Lưu ý: không phải tất cả các toán tử đều có thể được nạp chồng theo cách này. Chúng ta sẽ thảo luận về  vấn đề này sau.

Giả sử rằng stack của chúng ta đã trở về trạng thái nguyên sơ và không chứa bất kỳ toán tử nào. Chúng ta sẽ đụng đến nó nữa. Chúng ta sẽ thêm tất cả các định nghĩa cần thiết vào mô-đun chính.

Hàm main được update như sau →