Я пытаюсь объявить vector<Item>
как частный член другого класса Inventory
, но он дает мне ошибку, говоря, что Item
не входит в сферу действия. Оба класса объявляются в одном файле. Я не знаю, как изменить масштаб, на который он смотрит, или что бы вы ни делали, чтобы заставить его работать.C++ как объявить вектор объектов как член класса
Вот код, чтобы сделать абсолютно ясно, что я пытаюсь сделать.
class Inventory {
public:
private:
vector<Item> inventory;
};
class Item {
public:
void SetName(string nm)
{ name = nm; };
void SetQuantity(int qnty)
{ quantity = qnty; };
void SetPrice(int pric)
{ price = pric; };
virtual void Print()
{ cout << name << " " << quantity << " for $" << price
<< endl; };
virtual ~Item()
{ return; };
protected:
string name;
int quantity;
int price;
};
Поместите декларацию позиции до публикации инвентаря. – Borgleader
Вам нужно определить 'Item' * before *, вы используете его как аргумент' vector'. –
Спасибо, честно говоря, не думаю, что в ближайшее время я подумал бы об этом. – Eegxeta