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 TodoStackArray :: TodoStackArray() – Derp
_TodoStackArray() "в файле заголовка. Предполагается, что это базовый конструктор? Я должен использовать его для чего-нибудь? ? _ TodoStackArray() - это конструктор, который используется для инициализации экземпляра класса.Вы можете использовать это, чтобы инициализировать своих членов класса здесь. – Pabdev