
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
хороший пример от @fxsaber , но одна проблема - а как удалить указатель на обьект автоматически?
хороший пример от @fxsaber , но одна проблема - а как удалить указатель на обьект автоматически?
Удаление из массива указателей в деструкторе же. при вызове delete для указателя любого потомка. Или не про то?
хороший пример от @fxsaber , но одна проблема - а как удалить указатель на обьект автоматически?
Удалив объект.
Удаление из массива указателей в деструкторе же. при вызове delete для указателя любого потомка. Или не про то?
хочу чтобы этот код работал без вызова delete a
пробовал в деструкторе BASE удалять - не получилось, вернее деструктор же не вызывается для указателя автоматически
пробовал создавать объект BASE b и при окончании программы вместе с b - удалить все оьекты BASE в цикле...что то пошло не так - переполнение стека получаю
ЗЫ: хотел покрутить модель акторов, код от @fxsaber удобный, можно создать актор путем обьявления указателя из актора, а вот корректно завершить всю программу не получается
корректно завершить всю программу не получается
Посмотрите VIRTUAL_DELETE-класс в Virtual-библиотеке. Подчищать можно таким же способом.
Посмотрите VIRTUAL_DELETE-класс в Virtual-библиотеке. Подчищать можно таким же способом.
ОК, посмотрю, но не уверен в успехе этого мероприятия (((
хочу чтобы этот код работал без вызова delete a
пробовал в деструкторе BASE удалять - не получилось, вернее деструктор же не вызывается для указателя автоматически
пробовал создавать объект BASE b и при окончании программы вместе с b - удалить все оьекты BASE в цикле...что то пошло не так - переполнение стека получаю
ЗЫ: хотел покрутить модель акторов, код от @fxsaber удобный, можно создать актор путем обьявления указателя из актора, а вот корректно завершить всю программу не получается
аа, понял проблему. Вот поэтому в т.ч. мне удобнее использовать коллекции (в т.ч. одиночки), которые очищаются при удалении.
А вызвать для общей коллекции один раз delete как-то не лень :), ну или держать её статической, чтобы деструктор вызывался автоматически.
з.ы. еще простое решение до кучи, вместо массива использовать CArrayObj из СБ, или подобный динамический контейнер.з.ы. еще простое решение до кучи, вместо массива использовать CArrayObj из СБ, или подобный динамический контейнер.
эта задача решена, вот универсальное решение https://www.mql5.com/ru/forum/85652/page16#comment_12346740
наследуйтесь от CObject и можете работать со списками без проблем
которые очищаются при удалении.
задача как раз обратная - не очищать при выходе из локальной области видимости указатели на обьект, НО очищать массивы указателей при окончании программы
ну и еще раз - хочу посмотреть как будет работать модель акторов, если не гуглите - то "на пальцах", это концепция отрицающая принципы ООП, каждый актор (обьект) это полностью готовый функциональный блок, который работает самостоятельно (по сути конечный автомат) и общается с остальными акторами через менеджер (очередь) сообщений
что Вы посчитаете за актор - минимальный функционал из ЕА, или же полностью ЕА - не важно, важно, что это некая группа конечных автоматов, которые работают асинхронно
да... сама суть этой концепции - актор может создавать актор, применительно к возможностям MQL - это и есть указатель на обьект
ОК, посмотрю, но не уверен в успехе этого мероприятия (((
кажется работает, потестировать еще нужно
@fxsaber , огромное спасибо! .... есть конечно вопрос, зачем так писать:
вообще не понимаю эту строку, пока так не написал, всегда в своих вариантах кода получал переполнение стека
кажется работает, потестировать еще нужно
@fxsaber , огромное спасибо! .... есть конечно вопрос, зачем так писать:
вообще не понимаю эту строку, пока так не написал, всегда в своих вариантах кода получал переполнение стека
Чтобы не перекрывать область видимости.