ShoppingCart and Item Classes
using namespace std is considered a bad practice.
Unrestricted getters and setters are as good as making Item's members public. In fact, if there is no class invariant to maintain, do make them public.
arrayEnd is not a particularly good name. Consider calling it items (or items_count) instead. As a side note, use it!

for (int i = 0; i &lt; items; i++)
    total_price += whatever;


This way the shopping cart constructor reduces to

ShoppingCart() {
    items = 0;
}

totalPrice is not initialized.
Having pointers in the shopping card is a dubious decision. You must answer the question who owns items. In other words, who's responsibility is to destroy Item, and what happens to the cart when it is destroyed? I strongly recommend to either have the cart to keep objects, or make cart responsible for their construction and destruction.