Форум программистов, компьютерный форум CyberForum.ru

Написать перегруженные функции для вывода на экран элементов массивов статического и динамического - C++

Восстановить пароль Регистрация
 
Dynamicmove
Сообщений: n/a
20.01.2014, 01:27     Написать перегруженные функции для вывода на экран элементов массивов статического и динамического #1
Здравствуйте! Нужна помощь с решением задачки Не могу разобраться с перегруженными функциями
И, если можно, разъясните что к чему...

Задача:
Заданы элементы массива. Написать перегруженные функции для вывода на экран элементов массивов статического и динамического.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.01.2014, 01:27     Написать перегруженные функции для вывода на экран элементов массивов статического и динамического
Посмотрите здесь:

C++ Написать перегруженные функции.
C++ Написать функции 1 вывода массива на экран
C++ Написать перегруженные функции и основную программу, которая их вызывает
C++ Написать перегруженные функции для вывода на экран суммы элементов одномерного и двумерного массивов
C++ Написать перегруженные функции
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kventin_zhuk
БНТУ ФИТР
 Аватар для kventin_zhuk
214 / 154 / 15
Регистрация: 26.12.2012
Сообщений: 382
20.01.2014, 01:58     Написать перегруженные функции для вывода на экран элементов массивов статического и динамического #2
Dynamicmove,
Перегруженные функции - функции имеющие одинаковое имя, но разные сигнатуры(количество, порядок или типы формальных параметров). например

C++
1
2
3
4
5
6
7
8
9
10
11
void print(int *arr, int size)
{
   for (int i = 0; i < size; i++)
         cout << arr[i] << endl;
}
 
void print(int *arr)
{
   for (int i = 0; i < 10; i++)
         cout << arr[i] << endl;
}
при вызове:

C++
1
print(myArr, 10);
будет вызвана одна функция. при

C++
1
print(myArr);
другая
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4920 / 2663 / 243
Регистрация: 29.11.2010
Сообщений: 7,405
20.01.2014, 02:08     Написать перегруженные функции для вывода на экран элементов массивов статического и динамического #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <iostream>
 
void print(const int arr[], const int size)
{
    std::cout << "Type1: ";
    for (int i=0; i < size; i++)
        std::cout << arr[i] << " ";
    std::cout << std::endl;
}
 
void print(int *arr, const int size)
{
    std::cout << "Type2: ";
    for (int i=0; i < size; i++)
        std::cout << arr[i] << " ";
    std::cout << std::endl;
}
 
int main()
{
    const int arr1[] = {1, 2, 3, 4, 5};
    const int size = sizeof(arr1) / sizeof(*arr1);
    print(arr1, size);
 
    int *arr2 = new int[size];
    for (int i=0; i < size; i++)
        arr2[i] = i+1;
    print(arr2, size);
    delete[] arr2;
}
kventin_zhuk, заменять размер на magic number - не есть хорошо. Более того, что будет, если я передам массив размерностью 1?
kventin_zhuk
БНТУ ФИТР
 Аватар для kventin_zhuk
214 / 154 / 15
Регистрация: 26.12.2012
Сообщений: 382
20.01.2014, 02:09     Написать перегруженные функции для вывода на экран элементов массивов статического и динамического #4
MrGluck, вы правы Cпасибо, учту
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4920 / 2663 / 243
Регистрация: 29.11.2010
Сообщений: 7,405
20.01.2014, 02:17     Написать перегруженные функции для вывода на экран элементов массивов статического и динамического #5
Кстати, вот третий способ на шаблонах:
C++
1
2
3
4
5
6
7
template<size_t N>
void print(const int (&a)[N])
{
    std::cout << "Type3: ";
    for (const int *it = a; it != a + N; ++it)
        std::cout << *it << " ";
}
Работает только со статическими массивами.
Yandex
Объявления
20.01.2014, 02:17     Написать перегруженные функции для вывода на экран элементов массивов статического и динамического
Ответ Создать тему
Опции темы

Текущее время: 08:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru