gpt4 book ai didi

c++ - 在构造函数中 'Player::Player(std::string, int, Board*)' :

转载 作者:搜寻专家 更新时间:2023-10-31 00:15:24 25 4
gpt4 key购买 nike

Player::Player(string Playername, int nr ,Board* x)
{
imie= Playername;
number=nr;
int k;

if(nr==1)
k=0;
else k=24;

for(int i=0;i<UNITS_NUMBER;i++)
{ Unit figure(figure,i);
units[i]=figure;

units[i].move(x->getF(k));
if(nr==1)
k++;
else k--;
}
}

(只是Player类的构造函数)和错误:

在构造函数Player::Player(std::string, int, Board*)中:

没有匹配函数来调用 Unit::Unit()

Player::Player(string Playername, int nr ,Board* x)

这里是Unit的定义

class Unit
{
Field* place;
Unit* unit;
int name;


public:
Unit(Unit iam, int n);
void move(Field* x);
int getname(){return name;}
};

这里是Player的定义

const int UNITS_NUMBER = 5;
class Player
{
Unit units[UNITS_NUMBER];
string imie;
int number;

public:
Player(string Playername, int nr, Board *x);
string getName();
void decide(Board*);
~Player();
};

如果你需要更多,告诉我。

更改后:

class Unit
{ Field* place;
Unit* unit;
int name;


public:
Unit(int n);
void move(Field* x);
int getname();
};

播放器

Player::Player(string Playername, int nr ,Board* x)
{
imie= Playername;
number=nr;
int k;
if(nr==1)
k=0;
else k=24;

for(int i=0;i<UNITS_NUMBER;i++)
{ Unit figure(i);
units[i]=figure;

units[i].move(x->getF(k));
if(nr==1)
k++;
else k--;
}
}

还是一样的错误;/

最佳答案

Unit 没有复制构造函数(因此您不能按值传递它)。

此外,这是未定义的行为:

Unit figure(figure,i);

因为 figure 的值在初始化之前就被使用了。

关于c++ - 在构造函数中 'Player::Player(std::string, int, Board*)' :,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19529115/

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