gpt4 book ai didi

c++ - 如何从单独的函数调用结构?

转载 作者:行者123 更新时间:2023-11-30 01:19:17 24 4
gpt4 key购买 nike

#include <iostream>
#include <cmath>

using namespace std;

struct workers{
int ID;
string name;
string lastname;
int date;
};

bool check_ID(workers *people, workers &guy);
void check_something(workers *people, workers &guy, int& i);

int main()
{
workers people[5];
for(int i = 0; i < 5; i++){
cin >> people[i].ID;
cin >> people[i].name;
cin >> people[i].lastname;
cin >> people[i].date;
if(check_ID(people, people[i]) == true)
cout << "True" << endl;
else
cout << "False" << endl;
check_something(people, people[i], i);
}
return 0;
}

bool check_ID(workers *people, workers &guy){
for(int i = 0; i < 5; i++){
if(people[i].ID == guy.ID)
return true;
break;
}
return false;
}

void check_something(workers *people, workers &guy, int& i){
check_ID(people, guy[i]);
}

这是我的代码,它不是很好的例子,但我很快就写了它来代表我遇到的问题,因为我的项目有点太大了。所以基本上,我想从不同的函数调用 struct,但我收到了这个错误:错误:此行中 guy[i] 中的“operator[]”不匹配:check_ID(people, guy[i]); 在函数 check_something 中。

最佳答案

main中,people是一个数组。您访问它的第 i 个元素 people[i] 并尝试将它传递给位于函数局部变量 位置的 check_something >家伙。然后您尝试取消引用 guy - 这不是数组,而是单个对象实例。

int main()
{
workers people[5]; // <-- array

...

    check_something(people /* <-- people */, people[i] /* <-- guy */, i /* <-- i */);

对比

void check_something(workers *people, workers &guy, int& i){
check_ID(people, guy[i] /* <-- array access on single instance*/);

你实际上在第一个参数中传递了数组,伙计们。这里不需要“guy”,因为它是 people[i],不是吗?所以你可以这样做:

void check_something(workers *people, int& i){
worker& guy = people[i];
check_ID(people, guy);

或者只是

void check_something(workers *people, int& i){
check_ID(people, people[i]);

会工作,或者你可以通过

void check_something(workers* people, workers& guy) {
check_id(people, guy);
}

---- 编辑----

您的 check_ID 函数中也有一个类似 python 的错误。

   if(people[i].ID == guy.ID)
return true;
break;

在 Python 中,这表示:

if people[i].ID == guy.ID:
return True

break

你想要的是

if ( people[i].ID == guy.ID ) {
return true;
break;
}

或者只是

if ( people[i].ID == guy.ID )
return true;

(因为return是要退出函数,后面再说break也没意义)

关于c++ - 如何从单独的函数调用结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21105509/

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