对于其中一个作业,我需要创建一个重载函数 print ,用于打印元素或数组的所有元素。打印整个阵列没问题:
for( int i = 0; i < size; i++)
cout << list [ i ] <<endl;
但是如何使用相同的功能只打印一个特定元素? 我看到的方式是询问用户要打印的内容,无论是一个元素还是所有数字。或者我在这里遗漏了什么?
答案 0 :(得分:1)
打印整个数组
print (const int *arr) const
{
// code you have written
}
打印特定数组元素
print (const int *arr, const int index)const // overloaded function
{
// validate index and print arr[index]
if (index >=0 && index<size)
cout << *(arr+index)
}
答案 1 :(得分:0)
(因为你在谈论重载,我假设你正在使用C ++。)
重载另一个的函数不再是同一个函数了。在您的情况下,您需要一个打印一个元素的函数。换句话说,只有一个int
:
void print(int num)
{ cout << num << endl; }
然后,您提供一个带有范围并打印它的重载:
(请注意,在某个范围内,end
元素指的是“一个超出范围的结尾”,不应打印。)
void print(int* begin, int* end)
{
while (begin != end) {
cout << *begin << endl;
// Or if you want to follow correct decomposition design:
// print(*begin);
++begin;
}
}
使用这两个函数:
int array[3] = {1, 2, 3};
print(array[0]);
print(array, array + 3);