如何使此函数适用于100个对象(c++)?
所以我有一个程序,在文本文件中显示每个对象的数字,问题是原来的程序只有6个对象,我发现preety很容易,但现在我不得不把它改为处理100个对象。我尝试使用for循环,但它只显示了第一个对象。我没有太多编程经验,也尝试过其他方法,但都不管用。不管怎样,函数如下:如何使此函数适用于100个对象(c++)?,c++,C++,所以我有一个程序,在文本文件中显示每个对象的数字,问题是原来的程序只有6个对象,我发现preety很容易,但现在我不得不把它改为处理100个对象。我尝试使用for循环,但它只显示了第一个对象。我没有太多编程经验,也尝试过其他方法,但都不管用。不管怎样,函数如下: void Circle::writeAll(Circle circle[6], int &count) { if (count == 0) { cout << "No circles in file. " &
void Circle::writeAll(Circle circle[6], int &count) {
if (count == 0) {
cout << "No circles in file. " << endl << endl;
};
if (count == 1 || count == 2 || count == 3 || count == 4 || count == 5 || count == 6) {
cout << " Radius: " << circle[0].getRadius() << "; Center(x): " << circle[0].getCenterx() << "; Center(y): " << circle[0].getCentery() << endl;
};
if (count == 2 || count == 3 || count == 4 || count == 5 || count == 6) {
cout << " Radius: " << circle[1].getRadius() << "; Center(x): " << circle[1].getCenterx() << "; Center(y): " << circle[1].getCentery() << endl;
};
if (count == 3 || count == 4 || count == 5 || count == 6) {
cout << " Radius: " << circle[2].getRadius() << "; Center(x): " << circle[2].getCenterx() << "; Centery(y): " << circle[2].getCentery() << endl;
};
if (count == 4 || count == 5 || count == 6){
cout << " Radio: " << circle[3].getRadius() << "; Center(x): " << circle[3].getCenterx() << "; Center(y): " << circle[3].getCentery() << endl;
};
if (count == 5 || count == 6){
cout << " Radius: " << circle[4].getRadius() << "; Center(x): " << circle[4].getCenterx() << "; Center(y): " << circle[4].getCentery() << endl;
};
if (count == 6){
cout << " Radio: " << circle[5].getRadius() << "; Center(x): " << circle[5].getCenterx() << "; Center(y): " << circle[5].getCentery() << endl;
};
cout << endl;
}) 看起来这就是你想要做的:除非我没有把问题解决好
void Circle::writeAll(Circle circle[], int &count,int size)
{
for(int i = 0; i <= size; i++)
{
if(count == 0)
cout << "No circles in file. " << endl << endl;
else if(count == i)
cout << " Radius: " << circle[i-1].getRadius() << "; Center(x):"
<< circle[i].getCenterx() << "; Center(y): " << circle[i-1].getCentery() << endl;
}
}
但是,您需要发送一个大小参数
如果解决方案不清楚,请随意评论,而不是使用数组,我将使用内置容器类型,如std::vector。在这种情况下,它将如下所示: 无效圆::writeAllconst标准::向量和圆 { 大小=圆圈大小; 如果大小==0 {
为什么圆圈对象要用一个圆容器?所以,我做了,它工作得很好,但唯一的问题是如果我在菜单上使用两个相同的选项,它显示圆的半径和其他值为0。也许有一个简单的方法来修复它,但是,我又一个新的C++,所以我不知道如何解决它。