
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Да ладно! То-то постоянно использую.
Где? В каком месте и каким образом?
Модераторы, извините за повтор вопроса. Уж очень хочется получить на него ответ.
А для чего вы нарочно переназначили указатель, переданный в функцию ? Конечно будет утечка. Но это не "классическая утечка", а классическая ошибка работы с указателем на объект.
Здесь не нужно создавать новый объект, а работать нужно с внешним объектом, указатель на который передан в функцию.
Где? В каком месте и каким образом?
Модераторы, извините за повтор вопроса. Уж очень хочется получить на него ответ.
Где? В каком месте и каким образом?
Модераторы, извините за повтор вопроса. Уж очень хочется получить на него ответ.
Если я правильно понял вопрос, то объявляем класс как объект с помощью new.
Далее через созданный объект, с помощью точки, вызываем публичные методы класса.
После выполнения всех вызванных методов, очищаем память, удалив созданный объект delete.
Если я правильно понял вопрос, то объявляем класс как объект с помощью new.
Далее через созданный объект, с помощью точки, вызываем публичные методы класса.
После выполнения всех вызванных методов, очищаем память, удалив созданный объект delete.
Не. Сначала подумал, что это параметр функции такой - объект но не по ссылке, но в конце точка с запятой. Если же это обычное создание объекта при объявлении, то с чего оно в скобках? Поэтому пока остается загадкой века.
Не. Сначала подумал, что это параметр функции такой - объект но не по ссылке, но в конце точка с запятой. Если же это обычное создание объекта при объявлении, то с чего оно в скобках? Поэтому пока остается загадкой века.
А для чего вы нарочно переназначили указатель, переданный в функцию ? Конечно будет утечка. Но это не "классическая утечка", а классическая ошибка работы с указателем на объект.
Здесь не нужно создавать новый объект, а работать нужно с внешним объектом, указатель на который передан в функцию.
да дело не в моем примере, а в реализации самих указателей в MQL - то их не нужно разименовывать (причем указатель можно присвоить и экземпляру обьекта!) , то можно вместо передачи указателя передать ссылку на обьект https://www.mql5.com/ru/forum/1111/page2471#comment_11796665
то вот вообще отсутствует толком инфа откуда и когда появился (CObj & obj) (причем & - это не операция разименования указателя, а получение указателя GetPointer() )
ладно, не хочу из пустого в порожнее... я уже себе сказал и в очередной раз на форуме повторю - MQL это не С++ и точка! так реализовано - ну вариантов нет
да дело не в моем примере, а в реализации самих указателей в MQL - то их не нужно разименовывать (причем указатель можно присвоить и экземпляру обьекта!) , то можно вместо передачи указателя передать ссылку на обьект https://www.mql5.com/ru/forum/1111/page2471#comment_11796665
то вот вообще отсутствует толком инфа откуда и когда появился (CObj & obj) (причем & - это не операция разименования указателя, а получение указателя GetPointer() )
ладно, не хочу из пустого в порожнее... я уже себе сказал и в очередной раз на форуме повторю - MQL это не С++ и точка! так реализовано - ну вариантов нет
Что-то вы драматизируете, нет здесь никаких сложностей и непонятностей.
В скобках - потому, что это примечание по тексту))))
Ну и вот.
Вот так:
void z(CObj * o){ }
даже не просто можно, а лучше, потому что можно вот так вызывать:
z(GetPointer(obj));
Если передавать указатель по ссылке, нужна будет еще одна переменная для указателя.
***
А если в функцию надо передать указатель, чтобы в функции создать объект, вот так работает:
Вот собственно и все, что вы хотели знать про ООП, но боялись спросить)))