Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

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

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

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

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

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

Аргументы по умолчанию C++ - C++
Здравствуйте! Подскажите пожалуйста как можно присвоить строку "Hello" переменной *char в прототипе функции, чтобы *a была по умолчанию...

Прата, аргументы по умолчанию - C++
Тема - аргументы по умолчанию. Приведён код #include <iostream> const int ArSize = 80; char * left(const char * str, int n = 1); ...

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

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

Фактически вопрос ставится так: когда вычисляются значения по умолчанию 1) при компиляции, 2) при вызове функции.
0
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
21.12.2011, 10:27 #4
thick_int, о каком языке идет речь?
0
thick_int
Заблокирован
21.12.2011, 10:34  [ТС] #5
О C++.
0
go
Эксперт С++
3586 / 1366 / 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;
}
1
thick_int
Заблокирован
21.12.2011, 10:43  [ТС] #7
Да, спасибо,
но понятность возникла не после Вашего
C++
1
fun (5);
а после
C++
1
2
fun ();
fun ();
0
fasked
Эксперт С++
4948 / 2528 / 180
Регистрация: 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
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
21.12.2011, 11:08 #10
thick_int, в С++ нет, в Си - да
1
silent_1991
Эксперт С++
4987 / 3044 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
21.12.2011, 11:32 #11
go, что "в Си - да"? В Си есть аргументы по умолчанию?
0
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
21.12.2011, 11:49 #12
silent_1991, Очевидно нет. По всей видимости я оговорился.
0
thick_int
Заблокирован
21.12.2011, 12:32  [ТС] #13
P.S. А что разве сейчас С(без плюсов) еще имеет какую-то актуальность?
0
fasked
Эксперт С++
4948 / 2528 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
21.12.2011, 12:49 #14
Цитата Сообщение от thick_int Посмотреть сообщение
P.S. А что разве сейчас С(без плюсов) еще имеет какую-то актуальность?
Да уж побольше, чем с плюсами
1
silent_1991
Эксперт С++
4987 / 3044 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
21.12.2011, 12:52 #15
thick_int, разумеется. Драйверы, да и вообще почти весь низкий уровень (ядро ОС, например), пишется на Pure C.
1
21.12.2011, 12:52
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.12.2011, 12:52
Привет! Вот еще темы с ответами:

Аргументы по умолчанию (что не так ?) - C++
#include &quot;stdafx.h&quot; #include &quot;sys.h&quot; #include &lt;iostream&gt; using namespace std; int box ( int lenght = 1, int width = 1, int height =...

Аргументы по-умолчанию в указателе на функцию в классе - C++
В классе создал указатель на функцию void set_window_style(void(*style)(char, char)); Вот сам метод void...

Error C4519: аргументы шаблона по умолчанию можно использовать только в шаблоне класса - C++
void sort_when_two_threads(Iterator first, Iterator last, Compare comp = std::less&lt;typename std::iterator_traits&lt;Iterator&gt;::value_type&gt;()) ...

Аргументы функции: что значит "большие" и "небольшие" аргументы? - C++
Здравствуйте! Всем доброго дня! Растолкуйте пожалуйста! Что значит большие и небольшие?


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

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

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