Quantcast
Channel: Programming Forums
Viewing all articles
Browse latest Browse all 51036

Getting ambiguous symbol errors in a stack of strings

$
0
0
I'm trying to make a stack of strings and I'm getting ambiguous symbol errors on lines 22, 30, 43, and 58. The error is coming from the word stack, but I thought I was supposed to use the class name. Can anyone help me understand what is causing this?

#include <iostream>
#include <stack>
#include <string>
using namespace std;

//Define the stack class, set default stack size to 7
//use a template to define type at later point

template<class T,int size=7>
class stack
{
    private: T data[size];
    int stack_ptr;
    public:
    stack(void);
    void push(T x);
    T pop();
	T top();
};
//constructor function to initialize stack and data
template<class T,int size>
stack<T,size>::stack(void)
{
    int i;
    for(i=0;i<size;i++) data[i]=0;
    stack_ptr=0;
}
//Push data onto stack
template<class T,int size>
void stack<T,size>::push(T x)
{
    if(stack_ptr>=size)
    {
        cout<<"cannot push data: stack full"<<endl;
        return;
    }
    data[stack_ptr++]=x;
    cout<<"Pushed\t" << x << "\tonto the stack"<<endl;
    return;
}
//Pop data from stack
template<class T,int size>
T stack<T,size>::pop()
{
    if(stack_ptr<=0)
    {
        cout<<"cannot pop data: stack empty"<<endl;
        return data[0];
    }
    cout<<"popped\t"<< data[--stack_ptr]<< "\tfrom stack"<<endl;
    return data[stack_ptr];
}


int main()
{
    //declaring stack of strings and using default size
    stack<string> c;
	string w;
    string name1 = "Rich";
	string name2 = "Debbie";
	string name3 = "Robin";
	string name4 = "Dustin";
	string name5 = "Philip";
	string name6 = "Jane";
	string name7 = "Joseph";
    c.push(name1);
	c.push(name2);
	c.push(name3);
	c.push(name4);
	c.push(name5);
	c.push(name6);
	c.push(name7);

    //pick up the stack value
    w=c.pop();
	string & i = c.top( );
	string next_top = c.top();

    cout << "The top person the stack is " << next_top << "."<< endl;
   
    return 0;
}

Viewing all articles
Browse latest Browse all 51036

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>