у вас проблема знаний, но она лежит не в теоретической плоскости. Вы хорошо понимаете суть и приват и паблик режимов. И разницу между данными и функцией (точнее то что можно внести в функцию для проверок и инициализации)
У вас просто отсутствует практика создания громадных проектов, с участием команды других программистов, аналитиков и использования сторонних библиотек. Вот только когда окунешься полностью в программирование не как хобби и поделки для MQL, а как действительно продуктовую работу, тогда понимание постепенно придет.
Никто вам не запрещает для индикаторов или экспертов, текст которых умещается в трех mqh файлах или -надцати функциях использовать всё в паблик. ИЛи вообще без классов. Да к тому же на 100% уверен, что кроме вас этот код никто и видеть никогда не будет. Пишите его как хотите, хоть левой ногой, хоть копипастом из чужого кода.
Когда же почуствуете стремление быть на голову выше - то требования к коду вы уже будете сами понимать. Освоите практику создания модульных и автотестов, написание документации, обоснование всех функци кода. Сейчас же - юзайте как хотите
PS в MQL ООП особо не нужно. Так как основная библиотека функций и справочник они не ООП. ООП тут используется только для скрытия пространства имён или как обвертки над стандартными функциями.
Шо то мне начало казатся что это больше будет места занимать чем если бы писать глобальные переменные+функции.
Это действительно так, но только в начале проектирования. Изначально по сравнению с процедурным программированием, требуется набить большее количество кода. Однако потом процедурный код становится более сложным и неуправляемым, поэтому с каждой новой функцией разрыв в скорости разработки сокращается, а затем и вовсе победитель меняется местами с "отстающим" и ООП программа начинает выигрывать как в скорости ее развития, так и в плане общей управляемости проектом.
eevviill: Можно ли утвержать что классы это многотипные буфера с данными?
Нет. Скорее классы это композитные данные, включающие в себя специальные методы по их обработке. Но лучше не заворачиваться определением, иначе уже на первом этапе изучения могут начаться трудности.
shanty: А можно изучить C#. Это изначально объектно-ориентированный язык, как ни какой другой. Посмотреть куры от itvdn и всё поймёшь. Есть книги толковые, например, Эндрю Троелсен. Язык программирования C#5.0 и платформа .NET 4.5. Я сам по нему изучал. Всю базу точно проскачешь легко. А дальше уже более специфичные материалы нужно капать.
Эндрю Троелсен написал замечательную книгу. Но она не для новичков, и посвящена не ООП как таковому, а тому, что в C# есть. Поэтому ее никак нельзя рекомендовать начинающим.
Не могу разобратся. Написал класс Квартира. Хочу посчитать(установить) для 3-х квартир столы и потом где то узнавать их количество.
Для чего в статье приват переменные. Только для использования их в обсчётах в классе?
Шо то мне начало казатся что это больше будет места занимать чем если бы писать глобальные переменные+функции.
Имхо, выбранный Вами подход неверен, хотя именно таким путем идут большинство новичков. Нужно не заучивать что делают те или иные типы методов и прочие ООП выражения, а путем размышлений приходить к изящным, простым и логичным конструкциям, которые можно реализовать с помощью предлагаемого функционала. Т.е. ошибка в том, что в изучении ООП берется направление от программирования к пониманию, а следовало бы начать пониманием, конечным результатом которого был бы ООП код.
В общем, если интересно, можем порассуждать над задачей квартиры и мебели в ней в терминах ООП и в конце концов прийти к той форме класса, которую без проблем смог бы закодить понять любой начинающий ООП'шник:)
Для затравки, предлагаю желающим ответить на следующие вопросы:
Какую мебель, по мимо столов, может включать в себя квартира (на вопрос есть однозначный ответ);
Сколько мебели может быть в квартире (также имеется однозначный ответ).
Что есть стол по своей сути? Это число? Объект? Мебель? Чем стол отличается от стула и любой другой мебели?
у вас проблема знаний, но она лежит не в теоретической плоскости.
Вы хорошо понимаете суть и приват и паблик режимов. И разницу между данными и функцией (точнее то что можно внести в функцию для проверок и инициализации)
У вас просто отсутствует практика создания громадных проектов, с участием команды других программистов, аналитиков и использования сторонних библиотек.
Вот только когда окунешься полностью в программирование не как хобби и поделки для MQL, а как действительно продуктовую работу, тогда понимание постепенно придет.
Никто вам не запрещает для индикаторов или экспертов, текст которых умещается в трех mqh файлах или -надцати функциях использовать всё в паблик. ИЛи вообще без классов.
Да к тому же на 100% уверен, что кроме вас этот код никто и видеть никогда не будет. Пишите его как хотите, хоть левой ногой, хоть копипастом из чужого кода.
Когда же почуствуете стремление быть на голову выше - то требования к коду вы уже будете сами понимать.
Освоите практику создания модульных и автотестов, написание документации, обоснование всех функци кода.
Сейчас же - юзайте как хотите
PS
в MQL ООП особо не нужно. Так как основная библиотека функций и справочник они не ООП.
ООП тут используется только для скрытия пространства имён или как обвертки над стандартными функциями.
Открою страшную тайну, - хотите?
Шо то мне начало казатся что это больше будет места занимать чем если бы писать глобальные переменные+функции.
Можно ли утвержать что классы это многотипные буфера с данными?
А можно изучить C#. Это изначально объектно-ориентированный язык, как ни какой другой. Посмотреть куры от itvdn и всё поймёшь. Есть книги толковые, например, Эндрю Троелсен. Язык программирования C#5.0 и платформа .NET 4.5. Я сам по нему изучал. Всю базу точно проскачешь легко. А дальше уже более специфичные материалы нужно капать.
Не могу разобратся. Написал класс Квартира. Хочу посчитать(установить) для 3-х квартир столы и потом где то узнавать их количество.
Для чего в статье приват переменные. Только для использования их в обсчётах в классе?
Шо то мне начало казатся что это больше будет места занимать чем если бы писать глобальные переменные+функции.
Имхо, выбранный Вами подход неверен, хотя именно таким путем идут большинство новичков. Нужно не заучивать что делают те или иные типы методов и прочие ООП выражения, а путем размышлений приходить к изящным, простым и логичным конструкциям, которые можно реализовать с помощью предлагаемого функционала. Т.е. ошибка в том, что в изучении ООП берется направление от программирования к пониманию, а следовало бы начать пониманием, конечным результатом которого был бы ООП код.
В общем, если интересно, можем порассуждать над задачей квартиры и мебели в ней в терминах ООП и в конце концов прийти к той форме класса, которую без проблем смог бы закодить понять любой начинающий ООП'шник:)
Для затравки, предлагаю желающим ответить на следующие вопросы:
Смотрю я на Ваши недавние посты Алексей, и сомнения присутствуют, что Вы откроете хоть какую-то тайну..