Это не операторы. Это такие методы (функции), которые вызываются автоматически.
Обычно в конструкторе класс инициализируем, а в деструкторе по необходимости деинициализируем.
Очень грубо говоря конструктор - это обычная функция, которая реализуется сразу после создания объекта класса (что-то типа OnInit и глобальной функции инициализации в MQL).
Аналогично и с деструктором - когда объект класса уничтожается (по ходу кода или с помощью delete) вызывается эта функция (ОnDeinit в MQL).
Очень грубо говоря конструктор - это обычная функция, которая реализуется сразу после создания объекта класса (что-то типа OnInit и глобальной функции инициализации в MQL).
Аналогично и с деструктором - когда объект класса уничтожается (по ходу кода или с помощью delete) вызывается эта функция (ОnDeinit в MQL).
Как ни странно, но я это и сам понял когда читал книги. Но по скольку привык что раньше объявление сочеталось в инициализацией часто, то не обращал на это внимания. Получается в классах нельзя задавать явное значение переменные, а только тип, верно? И чтоб задать значения переменным класса нужно это делать в конструкторах соответствующих классов, так?
Как ни странно, но я это и сам понял когда читал книги. Но по скольку привык что раньше объявление сочеталось в инициализацией часто, то не обращал на это внимания.
Различайте объявления (1) типов и (2) экземпляров переменных. Инициализацией часто сопровождается объявления экземпляров. Объявления типов данных в языке mql4 вообще не было. Все простые типы изначально неявно объявлены разработчиками языка. Для переменных простых типов (int, double и т.п.), хранящих в качестве значения одно единственное число, инициализация очень проста и выполняется одним оператором присваивания. Для сложных (составных, структурных) типов, хранящих в своём теле целые наборы значений различных типов, инициализация не может быть такой же примитивной. Для удобства юзеров-программистов и были придуманы такие вот спец-функции (конструкторы и деструкторы).
Получается в классах нельзя задавать явное значение переменные, а только тип, верно? И чтоб задать значения переменным класса нужно это делать в конструкторах соответствующих классов, так?
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Пытаюсь понять причины использования данных операторов. Для чего канкретно они нужны? Читал в книгах и вообще на просторах Рунета, но не совсем въезжаю.
Как я понял, если конструктор не задать явно, то происходит неявная инициализация. Тогда зачем задавать явно? Каково применение данных операторов? Есть ли необходимость в их применении?
P.S. Как начал изучение классов, у меня всё перепуталось... Вот и стараюсь въехать.