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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
NanoChely
0 / 0 / 0
Регистрация: 28.06.2013
Сообщений: 48
#1

Значение по умолчанию передаваемое в функцию - C++

21.09.2013, 18:43. Просмотров 859. Ответов 9
Метки нет (Все метки)

Значение по умолчанию передаваемое в функцию для переменных допустим int-типа установить можно вот так
C++
1
some_func(int i = 0){
Но вот как быть, если мне нужно по умолчанию передать пустой массив?
C++
1
some_func(char array[]={}){
Вот что то типо такого мне нужно, только правильно )
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.09.2013, 18:43     Значение по умолчанию передаваемое в функцию
Посмотрите здесь:

C++ Значение вектора по-умолчанию
C++ Задать аргументу значение по умолчанию
Значение по-умолчанию для ссылки C++
Указатель на функцию с аргументами по умолчанию C++
C++ Указатель на функцию и параметры по умолчанию
C++ Передача параметров в функцию по умолчанию
Аргументы по-умолчанию в указателе на функцию в классе C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Бендерродригез
Сгибальщик
42 / 42 / 3
Регистрация: 18.05.2013
Сообщений: 220
Завершенные тесты: 1
21.09.2013, 18:51     Значение по умолчанию передаваемое в функцию #2
Тебе ж работать потом с этим массивом. И как ты себе это представляешь? На что будет указывать array? Тут скорее перегрузка нужна.
zss
Модератор
Эксперт С++
6242 / 5845 / 1891
Регистрация: 18.12.2011
Сообщений: 14,972
Завершенные тесты: 1
21.09.2013, 18:53     Значение по умолчанию передаваемое в функцию #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
some_func(char* array=NULL)
{
     if(array==NULL)
     {
         array= new char[SIZE];
         ...
         delete[] array;
     }else
     {
     ....
     }
}
OhMyGodSoLong
~ Эврика! ~
1243 / 992 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
21.09.2013, 18:55     Значение по умолчанию передаваемое в функцию #4
Цитата Сообщение от NanoChely Посмотреть сообщение
Вот что то типо такого мне нужно, только правильно )
C++
1
2
3
4
void some_func(const std::vector<char> &array = std::vector<char>())
{
    //...
}
NanoChely
0 / 0 / 0
Регистрация: 28.06.2013
Сообщений: 48
21.09.2013, 19:00  [ТС]     Значение по умолчанию передаваемое в функцию #5
1. Хотелось бы все-таки узнать как передать пустой массив, аналог в PHP func(array = array());
2.
Цитата Сообщение от Бендерродригез Посмотреть сообщение
Тебе ж работать потом с этим массивом. И как ты себе это представляешь? На что будет указывать array? Тут скорее перегрузка нужна.
Функция рекурсивно себя вызывает, с каждым вызовом функции в массив добавляется новый элемент, поэтому мне нужно установить начальное значение. Или подскажите какие есть способы сделать, чтоб когда функция вызовет сама себя, то массив который я создам в этой функции не исчез.

Добавлено через 2 минуты
OhMyGodSoLong, векторы, пока не знаю, что это )
zss, похоже на то что я искал )
Бендерродригез
Сгибальщик
42 / 42 / 3
Регистрация: 18.05.2013
Сообщений: 220
Завершенные тесты: 1
21.09.2013, 19:02     Значение по умолчанию передаваемое в функцию #6
Цитата Сообщение от NanoChely Посмотреть сообщение
1. Хотелось бы все-таки узнать как передать пустой массив, аналог в PHP func(array = array());
2.
Функция рекурсивно себя вызывает, с каждым вызовом функции в массив добавляется новый элемент, поэтому мне нужно установить начальное значение. Или подскажите какие есть способы сделать, чтоб когда функция вызовет сама себя, то массив который я создам в этой функции не исчез.

Добавлено через 2 минуты
OhMyGodSoLong, векторы, пока не знаю, что это )
zss, похоже на то что я искал )
Определи глобальный массив.
NanoChely
0 / 0 / 0
Регистрация: 28.06.2013
Сообщений: 48
21.09.2013, 19:03  [ТС]     Значение по умолчанию передаваемое в функцию #7
Этот способ я знаю, но как то не красиво выглядит когда переменные которые я использую только в функции, а объявляю их вне функции..
zss
Модератор
Эксперт С++
6242 / 5845 / 1891
Регистрация: 18.12.2011
Сообщений: 14,972
Завершенные тесты: 1
21.09.2013, 19:06     Значение по умолчанию передаваемое в функцию #8
C++
1
2
3
4
5
6
7
8
some_func()
{
    static char array[SIZE];
    static int count=0;
    array[count]='a';
    count++;
    ....
 }
NanoChely
0 / 0 / 0
Регистрация: 28.06.2013
Сообщений: 48
21.09.2013, 19:12  [ТС]     Значение по умолчанию передаваемое в функцию #9
zss, идеально, но как переменная будет себя вести если функция рекурсивно себя вызывает? count тогда будет обносятся?
p.s. только вот неудобно, что переменную нужно зачищать самому
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.09.2013, 19:14     Значение по умолчанию передаваемое в функцию
Еще ссылки по теме:

Значение по умолчанию C++
C++ Передача параметров в функцию по умолчанию
Вставки препроцессорных макросов типа __FUNCTION__ в функцию в качестве параметров по умолчанию C++
Перегрузка функций. Значение по умолчанию C++
C++ По заданной формуле реализовать функцию, возвращающую значение, и функцию, не возвращающую значение

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
zss
Модератор
Эксперт С++
6242 / 5845 / 1891
Регистрация: 18.12.2011
Сообщений: 14,972
Завершенные тесты: 1
21.09.2013, 19:14     Значение по умолчанию передаваемое в функцию #10
Рекурсивность не имеет значения.
При каждом вызове функции команда
count++;
будет увеличивать count на единицу.
Yandex
Объявления
21.09.2013, 19:14     Значение по умолчанию передаваемое в функцию
Ответ Создать тему
Опции темы

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