考虑以下代码:
# 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;
}
}