gpt4 book ai didi

C++如何将对象的 vector 声明为类的成员

转载 作者:太空宇宙 更新时间:2023-11-04 15:38:53 25 4
gpt4 key购买 nike

我正在尝试声明 vector<Item>作为另一个类的私有(private)成员Inventory , 但它给我一个错误说 Item不在范围内。这两个类都在同一个文件中声明。我不知道如何更改它查看的范围或您应该做些什么来使其工作。

下面是代码,可以清楚地说明我要做什么。

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;
};

最佳答案

Item 必须在用作模板参数之前定义。

从技术上讲,您可以在特定上下文中使用前向声明,但为了节省您的时间和学习确切规则的挫败感,确保您首先定义它会更容易。

一般来说,声明的顺序很重要。如果您在另一个类型的声明中使用一个类型,则所使用的类型必须已经被定义。此规则的异常(exception)情况涉及指针和引用的使用,它们只需要前向声明。

关于C++如何将对象的 vector 声明为类的成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27066023/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com