7.1.8 Cải tiến toán tử << (1)

Chúng ta xem xét 2 cách khác nhau để sử dụng toán tử “<<“: một được thực hiện bởi chúng ta và một lấy từ các thư viện streams.

Toán tử << của các thư viện streams có thể được sử dụng như sau:

Dòng code này sẽ được trình biên dịch hiểu như sau:

Điều này có nghĩa là biểu thức trong ngoặc đơn trả về một tham chiếu đến một stream (cụ thể là cout stream) để nó có thể được sử dụng (tái sử dụng) làm một đối số bên trái cho toán tử “<<” tiếp theo.

Toán tử << của chúng ta không chưa đủ thông minh nên đừng cố gắng sử dụng chúng như thế này. Nó sẽ gây ra các lỗi biên dịch.

Chúng ta có thể làm điều tương tự với stack của chúng ta. Bây giờ chúng ta cần cải tiến toán tử của chúng ta để nó có thể làm được như vậy, điều đó có nghĩa là hàm của toán tử << của chúng ta sẽ không trả về kiểu void nữa. Nó phải trả lại một giá trị là một tham chiếu đến đối tượng stack. Khai báo của toán tử bây giờ phải như này →