Takto to mám spravené
#include <iostream>
#include "prd.h"
Stack::Stack(){
pitems = new Item[MAX];
size = 0;
top = 0;
}
Stack::~Stack(){
delete [] pitems;
}
Stack::Stack(const Stack & st){
pitems = new Item[MAX];
size = st.size;
top = st.top;
for(int i = 0; i < st.top; i++){
pitems[i] = st.pitems[i];
}
}
bool Stack::isempty(){
return size == 0;
}
bool Stack::isfull(){
return size == MAX;
}
bool Stack::push_back(const Item & item){
if(top < MAX){
pitems[top++] = item;
size++;
return true;
}
return false;
}
bool Stack::pop_back(){
if(top > 0){
top--;
size--;
return true;
}
return false;
}
Stack & Stack::operator=(const Stack & st){
if(this == & st)
return *this;
delete [] pitems;
pitems = new Item[MAX];
size = st.size;
top = st.top;
for(int i = 0; i < st.top; i++){
pitems[i] = st.pitems[i];
}
return *this;
}
std::ostream & operator<<(std::ostream & os, const Stack & st){
for(int i = 0; i < st.top; i++){
os << st.pitems[i] << std::endl;
}
return os;
}
Akurát ten pop som nechápal, prečo je to tak riešené
#4 vitamin
šak ja aj tak volám konštruktor, že mi vytvorí celé pole a deštruktor mi ho potom uvoľní