【发布时间】:2020-12-04 12:34:24
【问题描述】:
我是新来的,如果我做错了很抱歉。
我做了一个学校项目。在功能上我不能简单地使用
tab[i] = tab[i + 1];
它显示错误: 无法引用函数“Pilkarz::operator=(const Pilkarz&)”(隐式声明)的元素 - 这是已删除的函数
这是我的第一堂课:
class Player
{
protected:
string Name;
string SName;
string Position;
int Age;
float AvGoals;
int los;
fstream plik;
string poz[7] = { "Napastnik", "Skrzydlowy", "Obronca", "Napastnik", "Pomocnik", "Bramkarz", "Boczny Obronca" };
};
public:
Player(string="Imie", string="Nazwisko", string="Pozycja", int=0, float=0, float=1);
};
这是我的第二节课:
class Club:public Player
{
protected:
Player* tab;
int counter, current, size;
fstream plik2;
private:
int i;
int skrzydlowy = 0, pomocnik = 0, bObronca = 0, bramkarz = 0;
public:
Club(int);
};
我想做的功能:
void Club::deleteCurrent() {
for (i = current; i < size - 1; i++)
{
tab[i] = tab[i + 1];
}
}
问题是我不能使用这个:tab[i] = tab[i +1]; 我必须使用 setter 和 getter 才能使其工作。有什么问题? 我使用 Visual Studio Enterprise 2019。
【问题讨论】:
-
fstream plik;-- 无法复制此成员。无法复制流 -
-
@molbdnilo 你的意思是每个 Player 对象都有自己的文件很糟糕? Class Player 不应该有 fstream 成员?
-
@l1ght 不一定是坏,但这取决于它的用途。即使你有一个“每个对象一个文件”的结构,文件 I/O 通常(并且更方便)是在对象之外处理的。