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

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

Войти
Регистрация
Восстановить пароль
 
thick_int
Заблокирован
#1

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

21.12.2011, 10:04. Просмотров 941. Ответов 15
Метки нет (Все метки)

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

Фактически вопрос ставится так: когда вычисляются значения по умолчанию 1) при компиляции, 2) при вызове функции.
go
Эксперт C++
3584 / 1364 / 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++
3584 / 1364 / 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
4929 / 2509 / 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++
3584 / 1364 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
21.12.2011, 11:08     Аргументы функции по умолчанию #10
thick_int, в С++ нет, в Си - да
silent_1991
Эксперт С++
4949 / 3025 / 149
Регистрация: 11.11.2009
Сообщений: 7,025
Завершенные тесты: 1
21.12.2011, 11:32     Аргументы функции по умолчанию #11
go, что "в Си - да"? В Си есть аргументы по умолчанию?
go
Эксперт C++
3584 / 1364 / 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
4929 / 2509 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
21.12.2011, 12:49     Аргументы функции по умолчанию #14
Цитата Сообщение от thick_int Посмотреть сообщение
P.S. А что разве сейчас С(без плюсов) еще имеет какую-то актуальность?
Да уж побольше, чем с плюсами
silent_1991
Эксперт С++
4949 / 3025 / 149
Регистрация: 11.11.2009
Сообщений: 7,025
Завершенные тесты: 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++ Аргументы функции: что значит "большие" и "небольшие" аргументы?
C++ Error C4519: аргументы шаблона по умолчанию можно использовать только в шаблоне класса
C++ Аргументы функции

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

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

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