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

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

Войти
Регистрация
Восстановить пароль
 
Gepar
1175 / 531 / 20
Регистрация: 01.07.2009
Сообщений: 3,517
#1

Вызов виртуальной функции vs несколько dynamic_cast подряд: что быстрее? - C++

10.05.2012, 15:37. Просмотров 480. Ответов 3
Метки нет (Все метки)

Нужно максимально оптимизировать программу вот и пал выбор:
лучше сделать чтобы вызывались виртуальные функции или же чтобы было четыре dynamic_cast' а вида:
if(dynamic_cast<>...)
else if(dynamic_cast<>...)
else if(dynamic_cast<>...)
else (dynamic_cast<>...)

На красоту кода пофиг, важна каждая доля секунды. Естественно что каждый раз не будет 4 вызова dynamic_cast, в среднем будет 2-3. Или всё же быстрее будет работать с виртуальными функциями?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.05.2012, 15:37
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вызов виртуальной функции vs несколько dynamic_cast подряд: что быстрее? (C++):

Вызов виртуальной функции - C++
Здравствуйте, есть код: #include &lt;iostream&gt; using namespace std; class A{ public: virtual void doIt() {cout &lt;&lt; &quot;1&quot;;} ...

Вызов виртуальной функции по указателю - C++
Суть в том, что преподаватель дал задание на защиту курсовой: вызов по указателю виртуальной функции из ТВР, искал в интернете, наткнулся...

Вызов виртуальной функции по нулевому указателю - C++
struct A { int sum1(int a, int b) { return a+b; } virtual int sum2(int a, int b) { return a+b; } }; int main() { ...

Не работает вызов виртуальной функции из класса потомка - C++
Есть код: #include &lt;iostream&gt; #include &lt;vector&gt; #include &lt;list&gt; #include &lt;algorithm&gt; #include &lt;string&gt; #include &lt;sstream&gt; ...

Вызов виртуальной функции через указатель на базовый класс - C++
Всем привет! Помогите пожалуйста разобраться с вызовом виртуальной функции в программе. В моей программе требуется организовать класс...

Программа осуществляющая вызов функции несколько раз с различными параметрами - C++
Даны действительные числа s,t. Получить g(1.2s)+g(2s-1,st), где g(a,b)=\frac{{a}^{2}+{b}^{2}-4*a*b}{{a}^{2}+5*a*b+3*{b}^{2}+4*a-b} ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
IceSqueez
10.05.2012, 15:56
  #2

Не по теме:

Если красота кода не важна, а главное оптимальность переводи код на Assembler

ForEveR
В астрале
Эксперт С++
7971 / 4733 / 321
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
10.05.2012, 16:11 #3
Gepar, dynamic_cast откровенно говоря выполняется довольно долго.
Gepar
1175 / 531 / 20
Регистрация: 01.07.2009
Сообщений: 3,517
10.05.2012, 16:25  [ТС] #4
ForEveR, ну я понимаю что он тоже не такой уж и быстрый, виртуальные функции ведь тоже не мгновенно вызываются, ну вот меня и интересует сравнение такое как я описал
IceSqueez, боюсь сервер не воспримет вставки кода на asm.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.05.2012, 16:25
Привет! Вот еще темы с ответами:

Дана последовательность целых чисел. Известно, что среди них несколько раз встречаются два подряд идущих нуля. - C++
1. Дана последовательность целых чисел. Известно, что среди них несколько раз встречаются два подряд идущих нуля. Определить, сколько раз...

Dynamic_cast и виртуальные функции - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; class A { public: virtual void test() const { std::cout &lt;&lt; &quot;FROM A&quot;; ...

dynamic_cast<X&>(Y) что в результате? - C++
Попытка привести указатель на один класс к указателю на другой (несовместимый) в результате получим NULL class X{ }; class Y{ }; ...

Вызов функции с теми же параметрами, что и main - C++
Господа, вот уже голову сломал. У меня есть программа, которая принимает на вход 4 параметра и считает кое что. то есть это ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
10.05.2012, 16:25
Ответ Создать тему
Опции темы

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