程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> 指針-請解答代碼注釋中的“問題”

指針-請解答代碼注釋中的“問題”

編輯:編程綜合問答
請解答代碼注釋中的“問題”

#include <stdafx.h>
#include <iostream>
#include <string>
using namespace std;

//應用抽象類,建立了兩種類型的表:隊列與堆棧。
class list{                            //申明一個抽象類;
public:
    list *head;                        //表頭指針;
    list *tail;                        //表尾指針;
    list *next;
    int num;
    list()
    {
        head=tail=next=NULL;           //初始化指針為空值;
    }
    virtual void store(int i)=0;       //純虛函數store(存儲);
    virtual int retrieve()=0;          //純虛函數retrieve(檢索);
};

class queue:public list{               //聲明list的共有派生類queue(隊列);
public:
    void store(int i);
    int retrieve();
};

void queue::store(int i)               //定義虛函數store;
{                                      //問題,2015年10月17日11:27:50
    list *item;                        
    item=new queue;                    //queque類的一個零時對象的地址賦給item?
    if(!item)                          //條件邏輯判斷代表item的值是真或假,前兩句中item的值有什麼變化?
    {
        cout<<"Allocation error\n";
        exit(1);
    }
    item->num=i;
    if(tail)tail->next=item;           //問題:語法?
    tail=item;
    item->next=NULL;                   //問題:語法?
    if(!head)head=tail;
}

int queue::retrieve()                  //定義虛函數retrieve;
{
    int i;
    list *p;
    if(!head)
    {
        cout<<"list empty\n";
        return 0;
    }
    i=head->num;
    p=head;
    head=head->next;                  //問題:語法?與“item->next=NULL”類似
    delete p;
    return i;
}

class stack:public list{               //聲明list的共有派生類stack(堆棧);
public:
    void store(int i);
    int retrieve();
};

void stack::store(int i)               //定義虛函數store;
{
    list *item;
    item=new stack;
    if(!item)
    {
        cout<<"Allocation error\n";    
        exit(1);
    }
    item->num=i;
    if(head) item->next=head;
    head=item;
    if(!tail)tail=head;
}

int stack::retrieve()                  //定義虛函數retrieve;
{
    int i;
    list *p;
    if(!head)
    {
        cout<<"list empty\n";
        return 0;
    }
    i=head->num;
    p=head;
    head=head->next;
    delete p;
    return i;
}

int main()
{
    list *p;                           //定義指向抽象類list的指針p;
    queue q_ob;
    p=&q_ob;                           //對象指針p指向類queue的對象q_ob; 
    p->store(1);
    p->store(2);
    p->store(3);
    cout<<"queue:";
    cout<<p->retrieve();
    cout<<p->retrieve();
    cout<<p->retrieve();
    cout<<'\n';
    stack s_ob;
    p=&s_ob;
    p->store(1);
    p->store(2);
    p->store(3);
    cout<<"Stack:";
    cout<<p->retrieve();
    cout<<p->retrieve();
    cout<<p->retrieve();
    cout<<'\n';

    getchar();
    return 0;
}



最佳回答:


語法?都是簡單的語法,給指針賦值,有什麼問題?

qq_32046433
qq_32046433
qq_32046433
a1193561652
qq_32046433
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved