在函数中for循环后返回数组?



考虑以下代码:

# include <iostream>
class Array
{
private:
int array[5];
public:
void getArray()
{
for(int i = 0; i < 5; i++)
{
std::cin>>array[i];
//std::cout<<array[i]<<std::endl; It would print array 0 to array 5
}
}
void printArray()
{
// How do I print array from index 0 - 5 
}
};

int main()
{
Array a;
a.getArray();
a.printArray();
}

我可以使用for循环来打印printArray吗?还是用return来表示函数?可以使用数组的边界?

结论

我想在另一个函数中使用数组。这可能吗?

就像你已经写过的那样

void printArray()
{
for (int i = 0; i < 5; i++)
{
std::cout<<array[i]<<std::endl;
}
}

这是类成员变量(如array)的意义所在。它们与一个对象相关联(例如main中的a),并且从一个方法调用持续到另一个给定对象的方法调用。

改进代码的一些建议。

首先printArray不会改变Array对象,所以它应该被声明为const

void printArray() const
{
for (int i = 0; i < 5; i++)
{
std::cout<<array[i]<<std::endl;
}
}

其次,使用基于范围的for循环。无论数组的大小,这个循环都可以工作这显然是件好事

void printArray() const
{
for (int a : array)
{
std::cout<<a<<std::endl;
}
}