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;
}
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.