C++ Class Errors : <pre><code>class Bag
{
protected:
    Item** myItems;
    int numItems;
public:
Bag();
Bag(Item** items, int numberOfItems);
Bag(const Bag&amp; other);
/**
Bag instance destructor
*/
virtual ~Bag();
/**
Defines the = operation to assign an Bag
*/
void operator= (const Bag&amp; m);
/**
Defines the &lt;&lt; operation to display an Bag
*/
friend ostream&amp; operator&lt;&lt; (ostream&amp; s, Bag&amp; m);
/**
Prints out Bag instance
*/
virtual void display(ostream&amp; s);
/**
Add an item to the bag
*/
void addItem(int pos, Item* newItemPtr);
/**
deletes an item in the bag
*/
void deleteItem(int pos);
//----------------------------------------------------------
Bag::Bag()
{
    myItems = NULL;
    numItems = NULL;
}
//----------------------------------------------------------
Bag::Bag(Item** items, int numOfItems)
{
    myItems = new Item*[numOfItems];
    numItems = numOfItems;
}
//----------------------------------------------------------
Bag::Bag(const Bag&amp; other)
{
    myItems = other.myItems;
    numItems = other.numItems;
}
//----------------------------------------------------------
Bag::~Bag()
{
    cout &lt;&lt; "BAG ELIMINATED" &lt;&lt; endl;
}
//----------------------------------------------------------
void operator= (const Bag&amp; m)
{
    myItems = m.myItems;
    numItems = m.numItems;
}
//----------------------------------------------------------
friend ostream&amp; operator&lt;&lt; (ostream&amp; s, Bag&amp; m)
{

}
//----------------------------------------------------------
void display(ostream&amp; s)
{

}
//----------------------------------------------------------
void addItem(int pos, Item* newItemPtr)
{
    Item**  temp = myItems;
    myItems = new Item*[numItems + 1];
        for (int i = 0; i &lt; numItems; i++)
        {
            if (i &lt; pos)
            {
                myItems[i] = temp[i];
                temp[i] = NULL;
            }
            else if (i == pos) 
            {
                myItems[i] = newItemPtr;
            }

            else if (i &gt; pos) 
            {
                myItems[i] = temp[i-1];
                temp[i-1] = NULL;
            }
        }
    delete[] temp;
    numItems++;
}
//----------------------------------------------------------
void deleteItem(int pos)
{
    Item**  temp = myItems;
    myItems = new Item*[numItems-1];
    for (int i = 0; i &lt; numItems; i++)
    {
        if (i &lt; pos)
        {
            myItems[i] = temp[i];
            temp[i] = NULL;
        }
        else if (i == pos)
        {
            temp[i] = NULL;
        }

        else if (i &gt; pos)
        {
            myItems[i-1] = temp[i];
            temp[i] = NULL;
        }
    }
    delete[] temp;
    numItems--;
}
};
</code></pre>

<p>So, I am getting errors on lines like "Bag :: Bag()" where I am trying to define each method. I'm wondering why it's giving me these "member function already defined or declared" errors given that my other classes don't have this error.</p>
