Class Stack đã hoàn thiện, nó như này →
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
class { private: int stackstore[100]; int SP; public: Stack(void) { SP = 0; } void push(int value); int pop(void) { return stackstore[--SP]; } }; void Stack::push(int value) { stackstore[SP++] = value; } |
Chúng ta tiếp tục phân tích code sau
1 2 3 4 5 6 7 8 9 10 11 12 13 |
#include <iostream> using namespace std; int main(void) { Stack little_stack, another_stack, funny_stack; little_stack.push(1); another_stack.push(little_stack.pop() + 1); funny_stack.push(another_stack.pop() + 2); cout << funny_stack.pop() << endl; return 0; } |
Chúng ta đã tạo ra ba đối tượng của lớp Stack. Tiếp theo, chúng ta sử dụng chúng. Hãy cố gắng dự đoán giá trị xuất ra màn hình.
Lưu ý: cách chúng ta gọi một hàm từ một đối tượng. Đây là quy ước tương tự mà chúng ta đã sử dụng cho string.
Tất cả các hàm này đã được khai báo là public, vì vậy chúng ta có thể gọi chúng thoải mái trong hàm main. Một câu hỏi thú vị nữa là các thành phần private có thực sự là không thể truy cập bên ngoài class ? Hãy thử sửa đổi code thêm một dòng như thế này vào hàm main:
little_stack.SP ++;
Đừng ngạc nhiên nếu trình biên dịch nó chửi bạn nhé. Lỗi là cái chắc 😆