Что такое классы?

 
Можно ли утвержать что классы это многотипные буфера с данными?
 

классы это такой объект который может сочетать в себе другие объекты

класс может содержать в себе например переменные разных типов, массивы, структуры, функции, все что угодно...

грубо говоря это модель данных + методы работы с этими данными 

описываю как могу ибо не проф.программер но уверен меня поправят если что

 
transcendreamer:

классы это такой объект который может сочетать в себе другие объекты

класс может содержать в себе например переменные разных типов, массивы, структуры, функции, все что угодно...

грубо говоря это модель данных + методы работы с этими данными 

описываю как могу ибо не проф.программер но уверен меня поправят если что

 

Ну содержит. А в чём приймущество если переменные разных типов, массивы, структуры, функции написать отдельно?
 
eevviill:
Ну содержит. А в чём приймущество если переменные разных типов, массивы, структуры, функции написать отдельно?

для сложных проектов иногда требуется сложное моделирование

тогда бывает очень удобно чтобы описания какого-то объекта или процесса хранилось целиком как одно целое и вместе с функциями которые работают с этими данными

если проект небольшой то смысла в классах нет вообще 

 
eevviill:
Можно ли утвержать что классы это многотипные буфера с данными?

В правильно заданном вопросе уже содержится половина ответа. ;)

Что такое классы вообще и зачем это надо? Или как это реализовано внутри MT4?

 
eevviill:
Ну содержит. А в чём приймущество если переменные разных типов, массивы, структуры, функции написать отдельно?
Преимущество в том, что С-подобные языки позволяют создавать объекты, живущие своей жизнью. 
 
tara:
Преимущество в том, что С-подобные языки позволяют создавать объекты, живущие своей жизнью. 
Ну так функция тоже живёт своей жизнью.
 
eevviill:
Ну так функция тоже живёт своей жизнью.
Я плохо объяснил. 
 

допустим мы хотим создать виртуальную модель человека и имитировать его поведение и состояния в памяти

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

допустим человек будет состоять из головы, туловища, 2 рук и 2 ног (упрощенно)

у каждого из этих объектов будут вложенные объекты

например голова будет включать 2 глаза, 2 уха, 1 носа, много зубов и т.д.

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

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

каждый из объектов в конце концов описывается базовыми типами (double, int, string и т.д.)

и у каждого Объекта будет набор Свойств (длина, толщина, твердость, теплота, цвет, ...)

тогда например вместо переменной длина_ногтя_мизинца_кисти_левой_руки можно будет обращаться:

Тело.ЛеваяРука.Кисть.Мизинец.Ноготь.Длина - и этого намного эффективнее и удобнее

далее нужно описать Объект с точки зрения Функций (Методов)

например человек может сгибать-разгибать конечности, крутить шеей, поворачивать корпус, наклоняться и др.

для каждого возможного действия Функции будет свой Метод - присущий определенной части тела

например можно сгибать пальцы, но нельзя их поворачивать в произвольноим направлении!

поэтому логично что Методы должны быть описаны вместе с Объектами

например могут быть такие Методы:

Нога.Согнуть (при этом класс Нога подразумевает что это может быть и левая и правая нога)

Шея.Наклонить и мн.др., при этом действия Функций специфичны для типа объекта

согнуть ногу и согнуть палец это не одно и тоже (хотя есть общее, но это разные функции) 

на самом деле все еще сложнее так как потребуется описать работу конкретных мышц

далее наступает следующий этап - сложные методы

например бег и ползание - это сложная последовательность методов относящихся к целой группе объектов 

некоторые методы очень специфичны, например - письмо, речь, думание ...

если описывать это в виде перечне переменных и функций то очень быстро наступит неразбериха 

вот для чего нужны классы и ООП 

для простых программ это не нужно 

 
Очень убедительно, но, главное - не в этом. Класс порождает экземпляры. 
 
transcendreamer:

допустим мы хотим создать виртуальную модель человека и имитировать его поведение и состояния в памяти

...

 

 

Спасибо.

Тогда это скорее похоже на базу данных Microsoft Access? 

Причина обращения: