Я хочу, чтобы функция pushFront (int) выполняла следующие действия:
bool stack::pushFront( const int n ) { items[++top] = n; // where top is the top of the stack return true; // only return true when the push is successful }
items - это структурный тип объекта "item". Посмотри:
class stack { stack(int capacity); ~stack(void); ... private: int maxSize; // is for the item stack int top; // is the top of the stack struct item { int n; }; item *items;
Я определил ctor для объекта класса стека и dtor следующим образом:
stack::stack(int capacity) { items = new item[capacity]; if ( items == NULL ) { throw "Cannot Allocoate Sufficient Memmory"; exit(1); } maxSize = capacity; top = -1; } stack::~stack(void) { delete [] items; items = NULL; maxSize = 0; top = -1; }
Да, основная проблема для меня - это items [++ top] = n; утверждение. Я пытался найти способы обойти это, как показано ниже:
bool stack::pushFront(const int n) { int *a = new int[maxSize]; a[++top] = n; return true; }
Но я не могу перетащить (+) массив 'a', чтобы увидеть эти фактические элементы массива ... Это то, на что я надеялся ..
Я хочу, чтобы элементы оператора [++ top] = n; работать..