對於其中一個分配,我需要創建一個重載函數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