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

Передача аргументов в функцию - C++

Восстановить пароль Регистрация
 
Kgfq
74 / 37 / 2
Регистрация: 23.09.2012
Сообщений: 408
12.10.2012, 17:48     Передача аргументов в функцию #1
Что сработает быстрее?

C++
1
2
3
4
void Func(const A &a = A(0, 0, 0))
{
 
}
или

C++
1
2
3
4
void Func(A a = A(0, 0, 0))
{
 
}
И почему работает первый вариант с константой?

Добавлено через 41 минуту
вверх
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Кот Ангенс
 Аватар для Кот Ангенс
317 / 267 / 37
Регистрация: 24.05.2012
Сообщений: 629
12.10.2012, 17:58     Передача аргументов в функцию #2
При вызове без аргументов - одинаково.
Kgfq
74 / 37 / 2
Регистрация: 23.09.2012
Сообщений: 408
12.10.2012, 18:12  [ТС]     Передача аргументов в функцию #3
Кот Ангенс, а с, естественно, верхняя быстрее, так?
Кот Ангенс
 Аватар для Кот Ангенс
317 / 267 / 37
Регистрация: 24.05.2012
Сообщений: 629
12.10.2012, 18:18     Передача аргументов в функцию #4
Скорее всего. В верхнюю передается адрес аргумента, а в нижнюю - новый объект, копия.
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
12.10.2012, 20:14     Передача аргументов в функцию #5
Kgfq, const потому, что без него вы можете попробовать по ссылке изменить временный объект, чего делать нельзя.
Yandex
Объявления
12.10.2012, 20:14     Передача аргументов в функцию
Ответ Создать тему
Опции темы

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