gpt4 book ai didi

c++ - 对象数组的条目未更新

转载 作者:行者123 更新时间:2023-11-30 05:29:22 24 4
gpt4 key购买 nike

我有一个名为 Random 的类,其中包含以下变量

private:
int Numbers[10];
int NrHighest;
int NrLowest;
int Index;
int IndexH;
int IndexL;

还有一个名为 friend void 的友元函数插入数字(随机 Random1)`

void insertNumbers(Random Random1)
{
string line;
int one,two,three;
int columOne[10];
int columTwo[10];
int columThree[10];
ifstream myfile("Numbers.dat");
if (myfile.is_open())
{
int i = 0;
while ( getline (myfile,line) )
{
sscanf(line.c_str(),"%i %i %i",&one,&two,&three);
columOne[i] = one;
columTwo[i] = two;
columThree[i] = three;

i++;
}
myfile.close();
}

else cout << "Unable to open file";

switch(run)
{
case 0 :
{
for(int i = 0;i < 10;i++)
{
Random1.Numbers[i] = columOne[i];
cout << Random1.Numbers[i] << endl;
};
break;
}
case 1 :
{
for(int i = 0;i < 10;i++)
{
Random1.Numbers[i] = columTwo[i];
cout << Random1.Numbers[i] << endl;
};
break;
}
case 2 :
{
for(int i = 0;i < 10;i++)
{
Random1.Numbers[i] = columThree[i];
cout << Random1.Numbers[i] << endl;
};
break;
}
}

run ++;
};

我有一个数字<< Random1.Numbers[i] << endl;检查数字是否保存到 Random1.Numbers输出是 Output

但是当我尝试在此处显示对象时出现问题

 cout << Random1;
cout << Random2;
cout << Random3;

调用也是友元函数的重载函数friend ostream &operator<<( ostream &output,const Random & Random1);

ostream &operator<<( ostream &output,const  Random & Random1)
{
for(int i = 0;i<10;i++)
{
cout << Random1.Numbers[i] << " ";
}
cout << endl << Random1.NrHighest << endl << Random1.NrLowest << endl << Random1.Index << endl << Random1.IndexH << endl << Random1.IndexL << endl;
return output;
};

我在这里设置了默认值

Random()
{
Numbers = {0,0,0,0,0,0,0,0,0,0};
NrHighest = 0;
NrLowest = 0;
Index = 0;
IndexH = 0;
IndexL = 0;
};

这里不是新的值,而是重载运算符<<函数的输出Output

我似乎可以弄清楚为什么对象没有得到更新。如果您需要更多信息,请询问。提前致谢。

最佳答案

在您的函数 void insertNumbers(Random Random1) 中,您正在向 Random1 添加值,但您是按值传递它。因此,当使用 Random 实例调用此函数时,它会复制它,为其添加值并最终销毁它。您将通过引用传递 Random1 来解决此问题:void insertNumbers(Random &Random1)

关于c++ - 对象数组的条目未更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36431901/

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