Írjunk dinamikus verem osztályt, amelynek osztálydefiníciója az alábbi:
Stack.h állomány:
#ifndef STACK_H
#define STACK_H
const int NULL=0;
class Stack
{
int elementNum;
int *pData;
public:
Stack() {elementNum=0;pData=NULL;}
Stack(const Stack& theOther);
~Stack() {if(pData!=NULL) delete[]pData;}
bool isEmpty()const{return !elementNum;}
bool pop(int& element);
bool push(int element);
};
#endif /*STACK_H */
Írjunk verem osztályt, amely megvalósítja az alábbi, a Stack.h állományban található osztálydefiníciót!
class Stack
{
unsigned int elementNum;
int *pData;
public:
Stack() {elementNum=0;pData=NULL;}
// A másoló konstruktor szükséges a dinamikus adattagok miatt
Stack(const Stack& theOther);
// A destruktor felszabadítja a dinamikus adattagot
~Stack() {if(pData!=NULL) delete[]pData;}
bool isEmpty()const{return !elementNum;}
void pop(int& element);
void push(int element);
// Az = operátor, amely a mély másolást valósítja meg
const Stack& Stack::operator = (const Stack& theOther);
};