I don't see the need to create an inventory class, at all. A vector of item objects (or pointers to item objects) is all you need. Just do as Bubba said and check against the capacity in your addItem function
Code:
/* Inside your player class */
std::vector<rpgItem*> inventory;
/* Inside your constructor and presumably your function for gaining a level */
inventory.reserve(pLevel + 5);
Code:
bool PLAYER_BASE::addItem(const rpgItem *newItem) {
if(inventory.size() < inventory.capacity()) {
inventory.push_back(newItem);
return true;
}
else return false;
}
At that point, everytime you try to add an item if you get true, you just go your merry way, if you get false you notify the user that their is no more space in the inventory.
STL may be slightly slower than arrays in some cases, but it's almost always simpler. That's the whole point of it.