Возможно ли реализовать паттерн singleton на MQL4. - страница 6

 
ALXIMIKS:


Вы или тугодум, или тугодум, извините за прямоту, черным по белому написано:

 Нееее... Тугодум это вы!
 Почему? Да потому что читать не умеешь.

А щяс я процитирую:

ALXIMIKS:

Тут сказано что сохраняя принципы ООП и не создавая глобальных переменных мы можем подсчитать количество каких-то там слов с помощью статического члена класса,

он  (статический члена класса) создается в едином экземпляре и не зависит от количества созданных объектов данного класса.

Мне нужно тоже самое, только от структуры. Или это сложно понять? Уже сколько раз подымался вопрос отличия структуры от класса, и сколько раз был ответ, что практически ничем. Отличий мало. По крайне мере в С++ это так. Я задавал этот вопрос как-то на одном форуме, где много профессионалов. Почему тут такая разница, это уже вопрос.

Я с самого начала сказал, что мне данные переменные нужны в единственном экземпляре. Или прочесть трудно?

hoz:

Повторю что мне нужно... Есть структура, члены которой должны сохранять свои значения в процессе выполнения программы, но при обращении любого метода любого класса, который используется данную структуру члены могут модифицироваться. Я так понимаю, они должны быть статическими. Данные члены должны быть в единственном экземпляре. Члены данной структуры будут использоваться многими классами и самим экспертом тоже.

 " Умник " заметил разницу? P.S. ВЫДЕЛЕНО КРАСНЫМ ЦВЕТОМ.
 

По поводу документации различия классов и структуру читаем. Опять же для " умника " ALXIMIKS вот тут:

Классы имеют ряд отличий от структур:

  • в объявлении используется ключевое слово class;
  • по умолчанию все члены класса имеют спецификатор доступа private, если не указано иное. Члены-данные структуры по умолчанию имеют тип доступа public, если не указано иное;
  • объекты классов всегда имеют таблицу виртуальных функций, даже если в классе не объявлено ни одной виртуальной функции. Структуры не могут иметь виртуальных функций;
  • к объектам класса можно применять оператор new, к структурам этот оператор применять нельзя;
  • классы могут наследоваться только от классов, структуры могут наследоваться только от структур.

 Тут есть про static что-то ? 

 

Виктор, это нечто! :-(

Тебе уже несколько раз написали, как и что надо делать.

Может уже начнёшь вникать? 

 
А зачем, лучше желчью плеваться и кричать что вокруг сотни идиотов по встречной полосе едут. 
 
Читаю и надеюсь что скрин будет паттерна (?).... для коллекции надо...
 
hoz:

 Открывает документацию тут и видим, что:

 Если переменные класса или структуры не теряют свои значения в процессе выполнения программы, то зачем тут они объявлены как static ?

 Они в секции паблик, можно сказать, что как в структуре... 

 

вернемся к вашим баранам.

что вам надо?

 
sergeev:

что вам надо?



Читаю ман:

Отсутствие возможности объявлять статически члены класса привело бы к необходимости объявлять эти данные на глобальном уровне программы.

По ходу речь идёт о классах и структурах. Судя по тому, что выше я написал, согласно документации разница между классом и структурой есть, но явно не в том, что можно или нельзя использовать модификатор static

Отсутствие возможности объявлять статически члены класса привело бы к необходимости объявлять эти данные на глобальном уровне программы.

Есть такое? Есть!

Идём дальше: 

Это разорвало бы отношения между данными и их классом, а также не согласуется с основной парадигмой ООП – объединение в классе данных и методов для их обработки. Статический член позволяет данным класса, которые не специфичны для отдельного экземпляра, существовать в области видимости класса.

Так как статический член класса не зависит от конкретного экземпляра, то обращение к нему выглядит следующим образом:

class_name::variable

 

  Вот мне нужно, что б мои члены структуры не зависели от экземпляра структуры.

 Я это делал по аналогии с классами. Понимаете?

 
hoz:

мне нужно, что б мои члены структуры не зависели от экземпляра структуры.


struct A
{
 int v;
};

static A a;


?

 

нах что-то делать? создай один глобальный объект класса и все. (ой-йо-йо-й - структуры, то вы опять что-то свое поймете и нападать будете)

Плюсы: 

1) меньше текста

2) больше переносимость

3) если вдруг понадобиться еще один объетк то нет ни каких запретов в его создании

4) возможно большая кучность данных, но вопрос к разработчикам. 

Минусы:

1) Мне не нравиться обращаться к полям через имя объекта, я хочу через static, поймите меня все. 

 
sergeev:


struct A
{
 int v;
};

static A a;


?

А почему так для классов не делается согласно документации? Почему там выносится и инициализируется каждый член за класс?
Причина обращения: