Помогите с ООП - страница 9

 
fxsaber #:

Дело не в моей реализации. Замерить можете по-старинке.

Замерял уже. Данные опубликованы. Попробую ещё раз в другом порядке. Но даже по Вашим данным какого-то перформанса от работы со звездочкой нет. 
 
Тем не менее, хотелось бы услышать аргументированное мнение в поддержку работы с указателями. Все, что пока высказывалось ранее это: "якобы быстрее", "якобы заставляет следить программисту за памятью и не выделять лишнего" ну и "сам дурак" - куда же без этого.
 
Vasiliy Sokolov #:
Тем не менее, хотелось бы услышать аргументированное мнение в поддержку работы с указателями. Все, что пока высказывалось ранее это: "якобы быстрее", "якобы заставляет следить программисту за памятью и не выделять лишнего" ну и "сам дурак" - куда же без этого.

Лево-право тоже путаешь или нет?

Просто запредельный бардак в голове. Указатели медленнее, а не быстрее. Про необходимость следить за памятью разговор был в контексте различий стиля программирования в языках со сборщиком мусора и без него. 

Вася, ты уже через 2-3 поста сам не помнишь какую позицию в споре занимал, то туда, то сюда кидает. 

 
fxsaber #:

Хорошо бы пример проявления потенциальной проблемы.

Ihor Herasko #:

И еще один момент. Массивы объектов лучше создавать через указатель. Иначе получится массив в стековой памяти, которой очень мало:

У меня был пример исчерпания стековой памяти только в случае рекурсивной сортировки с большим объёмом данных.
Программа просто зависала.

К тому же можно глобальным объявлением воспользоваться, в этом случае это уже не стековая память.
Согласны? 

 
Ihor Herasko #:

Это не проблема и тем более не потенциальная. Просто особенности работы с памятью в МТ. Вот статический массив:

А вот динамический массив:

В этом случае все компилируется и работает.

Согласен, но таких объёмов за всю мою практику у меня не было.
Как правило нужен быстрый расчёт, например, "хвоста" какого-либо индикатора и без вызова самой встроенной индикаторной (библиотечной) функции,
поэтому я применял более быстрый по формуле расчёт значений индикатора. В этом случае вообще очень малое потребление памяти.
И вообще, на будущее всем разработчикам рекомендую такой подход, чтобы экономить память и время расчёта функций с плавающей запятой.
Если это возможно, то стоит многие данные переводить в целочисленный формат - это очень ускоряет процесс.

П.С.: Конечно, всё вышенаписанное касается случая экономии, например, нескольких сотен миллисекунд.

 
Dmitiry Ananiev:

вот делаю такой класс 

теперь хочу вызвать массив объектов: 

Как тогда быстро создать массив объектов если в конструкторе есть параметры на глобальном уровне? 

Например? создать сначала объекты изменив конструктор, а потом как в OnInit заменить объекты, чтоб они были с символами? 

Может есть решение проще ? 

class Strategy1
{
        Strategy1();
 };

class Strategy2
{
        Strategy (string sym);
}

В объявлении класса Strategy2, в самом названии конструктора класса не хватает "2", иначе это не конструктор.