gpt4 book ai didi

C++从类的 vector 指针访问类的成员

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:24:06 24 4
gpt4 key购买 nike

抱歉,但这真的让我感到困惑,我知道答案就在眼前,我想不通。有人可以看一下吗?它用于航空公司预订系统学校项目。

这个函数接受航类号,容量,数量的计数航类,以及包含所有航类作为参数的 vector 。它将检查以确保航类不存在,如果存在错误将显示消息,否则将创建航类。计数为航类数量也将增加。

void newFlight( string f, string s, int* n, vector<Flight> *v)
{

Flight temp;

//Check to see if flight number exists
bool alreadyExist = false;
for (int i=0; i < v->size(); i++)
{
if (f.compare((v[i].getNumber()) == 0))
alreadyExist = true;
}

//If it doesn't exist, create it
if (!alreadyExist)
{
v->push_back (temp); //Add the new Flight object to the
//vector of flights
*n++; //Increase count
}

else
{
cout << "A flight numbered " << f << " already exists";
cout << ". Flight not created.\n";
}

};

我的问题是,当我尝试将 vector 中已有的航类与我要添加的航类进行比较时。在第 7 行,我不断收到此消息:

error: ‘class std::vector<Flight, std::allocator<Flight> >’ has no member named ‘getNumber’

所讨论的 vector 是一个具有 Flight 类的 vector ,它有一个名为 getNumber() 的成员。我通过引用将 vector 传递给函数。所以 v 是一个指针,但我认为 [] 会处理它。我也尝试使用 -> 运算符而不是点运算符,但它没有帮助。我不知所措,任何帮助将不胜感激。我比较生疏,夏天刚刚结束 :D 另外我希望它的格式正确。

最佳答案

参数 v 作为指向 vector 的指针传递给您的函数。如果您随后使用 [] 运算符,它会像在 C 中一样认为 v 是指向 vector 数组的指针,因此 v[i] 实际上仍然是一个 vector 。

你应该做的是:

(*v)[i].getNumber();

关于C++从类的 vector 指针访问类的成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3638520/

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