struct TodoItem
{
std::string todo;
};
const int MAX_STACK_SIZE = 5;
class TodoStackArray
{
public:
TodoStackArray(); //confusion here<---
bool isEmpty();
bool isFull();
void push(std::string todoItem);
void pop();
TodoItem* peek();
/* for grading purposes we need these following methods */
int getStackTop() { return stackTop; }
TodoItem** getStack() { return stack; }
private:
int stackTop;
TodoItem* stack[MAX_STACK_SIZE];
};
上面是來自當前分配的頭文件的一些聲明和類。我們的職責是使用這個頭文件實現一個堆棧程序。但是,我對頭文件中TodoStackArray()
的用途有點困惑。這應該是一個基礎構造函數?我應該用它做什麼?從頭文件中使用類變量的誤解
我明白,這是有點具體情況,但考慮到堆棧數組是STL我想你可能都能夠提供一些見解。謝謝!如果你想看到我所做的這個頭文件
...
TodoStackArray::TodoStackArray() //This, unsurprisingly, produces an error.
{
stackTop = -1;
stack[stackTop];
}
bool TodoStackArray::isEmpty()
{
return (stackTop == -1);
}
TodoItem* TodoStackArray::peek()
{
if(stackTop ==-1)
{
cout<< "Stack empty, cannot peak."<<endl;
}
else
{
return(stack[stackTop]);
}
}
bool TodoStackArray::isFull()
{
return(stackTop == 4);
}
void TodoStackArray::push(std::string todoItem)
{
if(stackTop >= 5)
{
cout<<"Stack full, cannot add new todo item."<<endl;
}
else
{
stack[stackTop++];
stack[stackTop]->todo = todoItem;
}
}
void TodoStackArray::pop()
{
if(stackTop == -1)
{
cout<<"Stack empty, cannot pop an item."<<endl;
}
else
{
stackTop--;
}
}
另外,要清楚,我們沒有提供的驅動程序軟件。他們會從他們自己的東西中評估,所以我們必須編寫我們自己的驅動軟件來測試我們的功能。因此缺乏任何主要實施。
從快速閱讀中我可以看出你正在做'stack [stackTop];'這等於'stack [-1];''。你想用這個指令做什麼? –
我收到一條錯誤; 「構造函數的返回類型說明無效」@ 8:30, void Header File中的TodoStackArray :: TodoStackArray() – Derp
_TodoStackArray()「這應該是一個基礎構造函數嗎?我應該用它來做什麼? ?_ TodoStackArray()是用於初始化類實例的構造函數。你可以用這個在這裏初始化你的班級成員。 – Pabdev