对于其中一个分配,我需要创建一个重载函数print打印一个数组的元素或所有元素。我打印整个阵列没有问题:重载函数print
for(int i = 0; i < size; i++)
cout << list [ i ] <<endl;
但是,如何使相同的功能打印只有一个特定的元素? 我看到它的方式是询问用户要打印什么,无论是一个元素还是所有数字。或者我在这里错过了什么?
对于其中一个分配,我需要创建一个重载函数print打印一个数组的元素或所有元素。我打印整个阵列没有问题:重载函数print
for(int i = 0; i < size; i++)
cout << list [ i ] <<endl;
但是,如何使相同的功能打印只有一个特定的元素? 我看到它的方式是询问用户要打印什么,无论是一个元素还是所有数字。或者我在这里错过了什么?
打印整个阵列
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)
}
(由于您正在谈论过载,我想你正在使用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);
C没有函数重载吗? –
@LightnessRacesinOrbit Nope。 –
我假设你使用C++?如果是这样,请将其添加到问题的标签中。 –
永远不要理解间隔出来的'\ [\]'约定 –
数组是固定大小还是动态分配? – juanchopanza