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

перегруженные функции и операторы - C++

Восстановить пароль Регистрация
 
MrAndrey_ka
 Аватар для MrAndrey_ka
77 / 77 / 2
Регистрация: 13.05.2009
Сообщений: 536
Записей в блоге: 1
21.04.2013, 23:44     перегруженные функции и операторы #1
вопрос может быть тривиальный, но все же: как влияет количество вариантов перегруженных функций и операторов на скорости обработки?

то есть есть ли разница в скорости выполнения между
C++
1
2
3
4
5
6
class Cl{
bool First(int val)
 {return val > 5;};
Cl p; 
for(int i=0; i< 1000; i++)
 p.First(i);};
и
C++
1
2
3
4
5
6
7
8
class Cl{
bool First(int val)
 {return val > 5;
bool First(double val)
 {return val > 5;};
Cl p; 
for(int i=0; i< 1000; i++)
 p.First(i);};
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
iRomul
 Аватар для iRomul
158 / 99 / 11
Регистрация: 17.10.2012
Сообщений: 474
Завершенные тесты: 1
22.04.2013, 00:00     перегруженные функции и операторы #2
Насколько я понимаю, они влияют только на скорость сборки и размер программы. Ведь это же просто функции, как от них может измениться скорость работы?
MrAndrey_ka
 Аватар для MrAndrey_ka
77 / 77 / 2
Регистрация: 13.05.2009
Сообщений: 536
Записей в блоге: 1
22.04.2013, 14:53  [ТС]     перегруженные функции и операторы #3
да, но при вызове p.First(i); тратятся же ресурсы на определение какую из перегруженных функция стоит вызывать или нет?
iRomul
 Аватар для iRomul
158 / 99 / 11
Регистрация: 17.10.2012
Сообщений: 474
Завершенные тесты: 1
22.04.2013, 19:05     перегруженные функции и операторы #4
Нет, во время процесса компиляции исчезает такое понятие, как перегрузка. Т.е. все функции (но только те, которые мы вызываем) на самом деле разные и располагаются в сегменте кода отдельно друг от друга.
Т.е. если есть такое:
C++
1
2
f(5);
f();
То, допустим, у f(int) будет адрес 100h, а у f() уже другой, например 200h. И после компиляции получится вот что:
Assembler
1
2
call 100h
call 200h
Впрочем я могу быть неправ, может меня более опытные поправят.
Yandex
Объявления
22.04.2013, 19:05     перегруженные функции и операторы
Ответ Создать тему
Опции темы

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