Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Trying to fix my stack class I made it has a lot of errors and isn\'t working an

ID: 3788293 • Letter: T

Question

Trying to fix my stack class I made it has a lot of errors and isn't working and i'm unsure why?

Stack Class:

#ifndef MYSTACK_H_INCLUDED
#define MYSTACK_H_INCLUDED

#include <iostream>
#include <exception>
using namespace std;
template <typename T>
class myStack
{
public:
myStack();
void push(const T& item);

T& top();

int arr_size();

void pop();
private:
int size;
arr = T[10];
};
template <typename T>
myStack<T>::myStack()
{
size = 0;
}
template <typename T>
T& myStack<T>::top()
{
return arr[size-1];
}
template <typename T>
void myStack<T>::push(const T& item)
{
arr(size) = item;
++size;
}
template <typename T>
void myStack<T>::pop()
{
--size;
}
template <typename T>
myStack<T>::arr_size()
{
return size;
}
template <typename T>
bool myStack<T>::isEmpty()
{
if(top==0)
{
return true;
}
else
{
return false;
}
}

#endif // MYSTACK_H_INCLUDED

Explanation / Answer

Hi, I have fixed all issues.

Please let me know in case of any issue.

########## myStack.h ########

#ifndef MYSTACK_H_INCLUDED
#define MYSTACK_H_INCLUDED
template <typename T>
class myStack
{
public:
myStack();
void push(const T& item);
T& top();
int arr_size();
void pop();
bool isEmpty();
private:
int size;
T arr[10];
};
#endif // MYSTACK_H_INCLUDED

############# myStack.cpp #########

#include <iostream>
#include <exception>
#include "myStack.h"
using namespace std;

template <typename T>
myStack<T>::myStack()
{
size = 0;
}
template <typename T>
T& myStack<T>::top()
{
if(isEmpty())
throw out_of_range("Stack<>::pop(): empty stack");
return arr[size-1];
}
template <typename T>
void myStack<T>::push(const T& item)
{
arr[size]= item;
++size;
}
template <typename T>
void myStack<T>::pop()
{
if(isEmpty())
throw out_of_range("Stack<>::pop(): empty stack");
--size;
}

template <typename T>
int myStack<T>::arr_size()
{
return size;
}
template <typename T>
bool myStack<T>::isEmpty()
{
if(size==0)
{
return true;
}
else
{
return false;
}
}