永发信息网

结构体基础问题:报错 [Error] no matching function for call to 'pos::pos(int, int)'

答案:1  悬赏:80  手机版
解决时间 2021-02-12 22:22
  • 提问者网友:暮烟疏雨之际
  • 2021-02-12 00:31
struct pos{
int x;
int y;
}Y,M,KFC[200];

bool go(pos start, pos end){
queue Q;
pos p_nw,p_nx;
int p_x[4] = {-1,0,1,0};
int p_y[4] = {0,1,0,-1};
bool flag[202][202];
memset(flag , 0 , sizeof(flag));

while(!Q.empty()){
p_nw = Q.front();
Q.pop();
for(int i=0 ; i<4 ; i++){
p_nx = pos(p_nw.x+p_x[i],p_nw.y+p_y[i]);
//这行报的错怎么修改?
//或者改成 p_nx = (p_nw.x+p_x[i],p_nw.y+p_y[i]);也不行
// 还是必须分别赋值?
//我是C++

}
}
部分代码
最佳答案
  • 五星知识达人网友:举杯邀酒敬孤独
  • 2021-02-12 02:02
p_nx = pos(p_nw.x+p_x[i],p_nw.y+p_y[i]);

这不是赋值哦。
pos是类型名,带参数,编译器识别为构造函数。但是pos结构的带参构造没有写。。。。所以无法找到。报错。
方法: 在结构定义的是够 添加 pos带参构造
总之方法有很多。。。选一个自己喜欢的就行
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯