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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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++
Добрый вечер! Сразу по делу: int func(char s) {....} int main { char s; // s-символьная строка func(s); }

Аргументы функции - C++
Программа должна вычислять x-e число Фибоначчи по mod y. Вылетает ошибка, что передано слишком мало аргументов. Объясните недалекому...

Аргументы у функции - C++
void String(int i, int j, int N, double a) И компилятор студии 2010 выдает следующие ошибки: 1&gt;Hello.cpp(48): error C2057: expected...

Аргументы функции - C++
Привет! Как поступить в следующей ситуации. for (int i = 0; i &lt; 16; i++) { func(str1, str2); .... } дело в том...


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

Или воспользуйтесь поиском по форуму:
silent_1991
Эксперт С++
4960 / 3036 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
21.12.2011, 12:52     Аргументы функции по умолчанию #15
thick_int, разумеется. Драйверы, да и вообще почти весь низкий уровень (ядро ОС, например), пишется на Pure C.
Yandex
Объявления
21.12.2011, 12:52     Аргументы функции по умолчанию
Ответ Создать тему
Опции темы

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