重载功能打印

时间:2012-12-01 17:01:50

标签: c++ arrays printing

对于其中一个作业,我需要创建一个重载函数 print ,用于打印元素或数组的所有元素。打印整个阵列没问题:

for( int i = 0; i < size; i++)
    cout << list [ i ] <<endl;

但是如何使用相同的功能只打印一个特定元素? 我看到的方式是询问用户要打印的内容,无论是一个元素还是所有数字。或者我在这里遗漏了什么?

2 个答案:

答案 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);