gpt4 book ai didi

C++ 错误 : no matching function for call, G++ 编译器

转载 作者:行者123 更新时间:2023-11-27 23:57:11 24 4
gpt4 key购买 nike

<分区>

晚上好

首先我确实在主题中搜索了问题,但不幸的是没有提示和建议对我有用。下面的简单代码:

random_device rd;   
mt19937 rng(rd());
uniform_int_distribution<int> wspolrzedna(1, 19);
uniform_int_distribution<int> kierunek(0, 3);

class one {
public:
int x, y, direction;
bool collision = false;

one(int x, int y, int k):x(x),y(y),direction(k) {
};
one(){};
~one() {};

void check(one& a){
if((a.x==x) && (a.y==y)){
a.collision =true;
collision =true;
}
};
};

class two : public one {
public:
int x,y,k,ms;

two(int x, int y, int k, int m):one(x,y,k),ms(m){
};
two(){};
~two() {};
};

int main(int argc, char *argv[]){

vector<one*> tmp;

tmp.push_back(new two(1, 2, 0,3));
for(int i=0;i<2;i++)
tmp.push_back(new one(wspolrzedna(rng),wspolrzedna(rng),kierunek(rng)));

for(int i=1;i<2;i++)
tmp[i]->check(tmp[0]);

return 0;
}

简而言之,我想将一个对象 (tmp[0]) 的 x 与另一个对象 (tmp[1] 和 tmp[2]) 的 x 进行比较。 (y 坐标也一样)。编译器 (G++) 错误:

g++ -std=gnu++11 stack.cpp -o stack

stack.cpp: In function 'int main(int, char**)':
stack.cpp:56:23: error: no matching function for call to 'one::check(one*&)'
tmp[i]->check(tmp[0]);
^
stack.cpp:26:7: note: candidate: void one::check(one&)
void check(one& a){
^<p>
stack.cpp:26:7: note: no known conversion for argument 1 from
'__gnu_cxx::__al
loc_traits<std::allocator<one*> >::value_type {aka one*}' to 'one&'<p>

我有一个默认构造函数,目前不知道如何解决这个问题。

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