通过引用传递对象向量时出现错误c2064

时间:2018-11-22 18:03:56

标签: c++ function vector arguments

我正在用矢量进行有趣的编码,但是后来碰到了这个错误: 错误c2064:“该术语未返回接受1个参数的函数”; 如函数声明中所述,当我调用函数“ ins”并传递矢量“ Vett”作为参数时,错误在第33行给出。

代码:

struct Num_and_Car {
int n;
char c;
`};`

bool pari (Num_and_Car Acces) {
if (Acces.n % 2 == 0)
    return true;
else return false;`
}

void ins (std::vector <Num_and_Car>Vettore) {
 int ins;
 for (int i = 0; Vettore[i].n != 0; i++) {
    std::cin >> ins;
    std::cout << "Succesfull\n";
    if (ins == 0)
        break;
    else
        Vettore.push_back({ ins });
        std::cout << "Succesfull\n";
 }  
}

int main () {
int ins = 0;
std::vector <Num_and_Car> Vett;
std::cout <<"Succesfull\n";
Vett.push_back({1 });
ins (Vett);
std::cout <<"Succesfull\n";

int n = std::count_if(Vett.begin(), Vett.end(), pari);
std::cout << n <<"pari\n";
std::cin >> n;
}

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

主要,您同时使用“ ins”作为变量名和函数名。该变量隐藏了该函数,然后您尝试使用该变量,就好像它是函数一样-无效。

重命名main中的局部变量,并删除字符grave(`)放置在任何地方,然后代码将正常工作。