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

Аргументы функции по умолчанию - C++

Восстановить пароль Регистрация
 
thick_int
Заблокирован
21.12.2011, 10:04     Аргументы функции по умолчанию #1
Допустим у нас имеется некоторая функция, некоторые аргументы которой специфицируются как аргументы, допускающие значения по умолчанию.
Верно ли что при всех вызовах такой функции для данных аргументов, когда их значения не указываются в вызове, всегда будут использованы одни и те же значения?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.12.2011, 10:04     Аргументы функции по умолчанию
Посмотрите здесь:

Аргументы функции по умолчанию C++
C++ Аргументы по умолчанию (что не так ?)
Аргументы по умолчанию C++ C++
C++ Аргументы функции по умолчанию
Аргументы функции C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
21.12.2011, 10:08     Аргументы функции по умолчанию #2
thick_int, Да
thick_int
Заблокирован
21.12.2011, 10:18  [ТС]     Аргументы функции по умолчанию #3
Вы наверное имеет в виду случай, когда инициализация аргументов по умолчанию осуществляется константами.
Ну а если такая инициализация осущетвляется вызовами других функций?

Фактически вопрос ставится так: когда вычисляются значения по умолчанию 1) при компиляции, 2) при вызове функции.
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
21.12.2011, 10:27     Аргументы функции по умолчанию #4
thick_int, о каком языке идет речь?
thick_int
Заблокирован
21.12.2011, 10:34  [ТС]     Аргументы функции по умолчанию #5
О C++.
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
21.12.2011, 10:37     Аргументы функции по умолчанию #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <stdlib.h>
 
int MyFun ()
{
    static int i;
 
    return ++i;
}
 
void fun (int a = MyFun() )
{
    std::cout << a << std::endl;
}
int main()
{
    fun (5);
 
    system ("pause");
    return 0;
}
thick_int
Заблокирован
21.12.2011, 10:43  [ТС]     Аргументы функции по умолчанию #7
Да, спасибо,
но понятность возникла не после Вашего
C++
1
fun (5);
а после
C++
1
2
fun ();
fun ();
fasked
Эксперт C++
 Аватар для fasked
4925 / 2505 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
21.12.2011, 10:58     Аргументы функции по умолчанию #8
Цитата Сообщение от thick_int Посмотреть сообщение
но понятность возникла
Для полного дзэна и просветления вот так попробуйте
C++
1
2
3
4
5
6
7
8
9
10
int main()
{
        fun (5);
        fun ();
        fun ();
        
        fun (6);
        fun ();
        fun ();
}
thick_int
Заблокирован
21.12.2011, 11:04  [ТС]     Аргументы функции по умолчанию #9
Итак, резюмируя все вышесказзанное, можно твердо утверждать, что правильным ответом на поставленный мною вопрос, является НЕТ.
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
21.12.2011, 11:08     Аргументы функции по умолчанию #10
thick_int, в С++ нет, в Си - да
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
21.12.2011, 11:32     Аргументы функции по умолчанию #11
go, что "в Си - да"? В Си есть аргументы по умолчанию?
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
21.12.2011, 11:49     Аргументы функции по умолчанию #12
silent_1991, Очевидно нет. По всей видимости я оговорился.
thick_int
Заблокирован
21.12.2011, 12:32  [ТС]     Аргументы функции по умолчанию #13
P.S. А что разве сейчас С(без плюсов) еще имеет какую-то актуальность?
fasked
Эксперт C++
 Аватар для fasked
4925 / 2505 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
21.12.2011, 12:49     Аргументы функции по умолчанию #14
Цитата Сообщение от thick_int Посмотреть сообщение
P.S. А что разве сейчас С(без плюсов) еще имеет какую-то актуальность?
Да уж побольше, чем с плюсами
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
21.12.2011, 12:52     Аргументы функции по умолчанию #15
thick_int, разумеется. Драйверы, да и вообще почти весь низкий уровень (ядро ОС, например), пишется на Pure C.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.01.2012, 10:22     Аргументы функции по умолчанию
Еще ссылки по теме:

C++ Производный класс, аргументы по умолчанию
Аргументы по-умолчанию в указателе на функцию в классе C++
Аргументы у функции C++

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

Или воспользуйтесь поиском по форуму:
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
04.01.2012, 10:22     Аргументы функции по умолчанию #16
Цитата Сообщение от fasked Посмотреть сообщение
Да уж побольше, чем с плюсами
Это почему?
Yandex
Объявления
04.01.2012, 10:22     Аргументы функции по умолчанию
Ответ Создать тему
Опции темы

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