Định nghĩa tương ứng của toán tử << như sau →
1 2 3 |
void Stack::operator<< (int v) { push(v); } |
Như chúng ta đã nói, đối tượng của lớp chính là đối số đầu tiên của toán tử (chính xác là cái nằm bên trái toán tử) vì vậy bên trong hàm thực thi của toán tử này chúng ta chỉ cần gọi phương thức push và truyền vào cho nó tham số chính là tham số thứ 2 (bên phải) của toán tử.
Hàm main sử dụng toán tử << như sau →
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
#include "mystack_01.h" #include <iostream> using namespace std; int main(void) { int i = 2; Stack stk; stk << 1; stk << 2 * i; stk << i; cout << stk.pop() << endl; cout << stk.pop() << endl; cout << stk.pop() << endl; return 0; } |
Toán tử mới được thêm vào làm việc tốt với literals (chữ, số), biểu thức và biến. Bạn hãy tự mình kiểm chứng.