Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
thick_int
Заблокирован
#1

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

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

Допустим у нас имеется некоторая функция, некоторые аргументы которой специфицируются как аргументы, допускающие значения по умолчанию.
http://www.cyberforum.ru/cpp-beginners/thread1919910.html
Верно ли что при всех вызовах такой функции для данных аргументов, когда их значения не указываются в вызове, всегда будут использованы одни и те же значения?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.12.2011, 10:04
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Аргументы функции по умолчанию (C++):

Аргументы функции по умолчанию
Написать функцию, которая принимает два параметра типа int: высоту и ширину....

Аргументы функции по умолчанию
Помогите. Вот код программы #include <iostream> using namespace std;...

Аргументы по умолчанию C++
Здравствуйте! Подскажите пожалуйста как можно присвоить строку "Hello"...

Прата, аргументы по умолчанию
Тема - аргументы по умолчанию. Приведён код #include <iostream> const int...

Аргументы по умолчанию (что не так ?)
#include "stdafx.h" #include "sys.h" #include <iostream> using namespace...

15
ForEveR
В астрале
Эксперт С++
7994 / 4753 / 651
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
21.12.2011, 10:08 #2
thick_int, Да
0
thick_int
Заблокирован
21.12.2011, 10:18  [ТС] #3
Вы наверное имеет в виду случай, когда инициализация аргументов по умолчанию осуществляется константами.
Ну а если такая инициализация осущетвляется вызовами других функций?

Фактически вопрос ставится так: когда вычисляются значения по умолчанию 1) при компиляции, 2) при вызове функции.
0
go
Эксперт С++
3636 / 1368 / 243
Регистрация: 16.04.2009
Сообщений: 4,527
21.12.2011, 10:27 #4
thick_int, о каком языке идет речь?
0
thick_int
Заблокирован
21.12.2011, 10:34  [ТС] #5
О C++.
0
go
Эксперт С++
3636 / 1368 / 243
Регистрация: 16.04.2009
Сообщений: 4,527
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;
}
1
thick_int
Заблокирован
21.12.2011, 10:43  [ТС] #7
Да, спасибо,
но понятность возникла не после Вашего
C++
1
fun (5);
а после
C++
1
2
fun ();
fun ();
0
fasked
Эксперт С++
4976 / 2556 / 241
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 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 ();
}
1
thick_int
Заблокирован
21.12.2011, 11:04  [ТС] #9
Итак, резюмируя все вышесказзанное, можно твердо утверждать, что правильным ответом на поставленный мною вопрос, является НЕТ.
0
go
Эксперт С++
3636 / 1368 / 243
Регистрация: 16.04.2009
Сообщений: 4,527
21.12.2011, 11:08 #10
thick_int, в С++ нет, в Си - да
1
silent_1991
Эксперт С++
5007 / 3065 / 270
Регистрация: 11.11.2009
Сообщений: 7,043
Завершенные тесты: 1
21.12.2011, 11:32 #11
go, что "в Си - да"? В Си есть аргументы по умолчанию?
0
go
Эксперт С++
3636 / 1368 / 243
Регистрация: 16.04.2009
Сообщений: 4,527
21.12.2011, 11:49 #12
silent_1991, Очевидно нет. По всей видимости я оговорился.
0
thick_int
Заблокирован
21.12.2011, 12:32  [ТС] #13
P.S. А что разве сейчас С(без плюсов) еще имеет какую-то актуальность?
0
fasked
Эксперт С++
4976 / 2556 / 241
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
21.12.2011, 12:49 #14
Цитата Сообщение от thick_int Посмотреть сообщение
P.S. А что разве сейчас С(без плюсов) еще имеет какую-то актуальность?
Да уж побольше, чем с плюсами
1
silent_1991
Эксперт С++
5007 / 3065 / 270
Регистрация: 11.11.2009
Сообщений: 7,043
Завершенные тесты: 1
21.12.2011, 12:52 #15
thick_int, разумеется. Драйверы, да и вообще почти весь низкий уровень (ядро ОС, например), пишется на Pure C.
1
go
Эксперт С++
3636 / 1368 / 243
Регистрация: 16.04.2009
Сообщений: 4,527
04.01.2012, 10:22 #16
Цитата Сообщение от fasked Посмотреть сообщение
Да уж побольше, чем с плюсами
Это почему?
0
04.01.2012, 10:22
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.01.2012, 10:22
Привет! Вот еще темы с решениями:

Производный класс, аргументы по умолчанию
Здравствуйте. Есть базовый класс и производный. Проблема в том что в...

Аргументы по-умолчанию в указателе на функцию в классе
В классе создал указатель на функцию void...

Аргументы шаблона по умолчанию можно использовать только в шаблоне класса
Помогите разобраться. В чем проблема. VS 2012, Код был написан под VS 2015....

Error C4519: аргументы шаблона по умолчанию можно использовать только в шаблоне класса
void sort_when_two_threads(Iterator first, Iterator last, Compare comp =...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru