程式碼展示以抽象類 list 定義介面,queue (FIFO) 與 stack (LIFO) 分別實作 store/retrieve。關鍵指標操作解析:
list* item = new queue; // 配置新節點
item->num = i; // 存資料
if (tail) tail->next = item; // 非空:舊尾巴指向新節點
tail = item; // 更新尾巴
item->next = NULL; // 新節點 next 設空
if (!head) head = tail; // 首節點:頭尾同指
int i = head->num; // 取頭資料
list* p = head; // 暫存舊頭
head = head->next; // 頭指標後移
delete p; // 釋放舊節點
return i;
item->next = head; // 新節點指向舊頭
head = item; // 更新頭
if (!tail) tail = head;
head/tail 是**成員指標**,屬於各自物件實例。item->next = NULL 只是將節點的 next 指標設為空值,非語法錯誤。list* p = &q_ob; p->store(1); 透過虛函數表動態分派至 queue::store。程式碼邏輯正確,若編譯報錯請檢查 #include、命名空間與編譯器版本 (建議 C++11 以上)。