Ошибки, баги, вопросы - страница 1873
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Объект класса с закрытым конструктором можно создать только при помощи специальной статической функции этого класса.
Хотя сейчас компилятор не ругается на код, который Вы привели, в будущем это обязательно исправят.
Предложенный стат. метод в таком случае будет некоторым самообманом, т.к. по сути он и будет являться конструктором. И его явно надо будет вызывать.
Для того чтобы вызвать деструктор можно использовать умный указатель.
При этом деструктор должен быть открытым.
Если Вы уверены, что конструктор должен быть закрытым, то по другому никак.
Умный указатель это объект, который содержит в себе простой указатель и обеспечивает его своевременное удаление.
Это самый простой вариант.
Бывают и более сложные умные указатели.
Очень хорошо про них написано в этой книге: https://rsdn.org/res/book/cpp/cpp_real_programmers.xml
чего не хватает, что бы скомпилировался код:
в данном варианте пишет 'var' - struct member undefined
PS. понял в чем ошибка ))
int _val = dynamic_cast <CCore *>(_obj.core).var;void* с какого билда в языке?
тогда, когда и интерфейсы появились
тогда, когда и интерфейсы появились
Если Вы уверены, что конструктор должен быть закрытым, то по другому никак.
Умный указатель это объект, который содержит в себе простой указатель и обеспечивает его своевременное удаление.
Это самый простой вариант.
Бывают и более сложные умные указатели.
Очень хорошо про них написано в этой книге: https://rsdn.org/res/book/cpp/cpp_real_programmers.xml
Собственно, логично, что не выходит. Заставить вызываться деструктор умного указателя раньше деструктора класса нельзя.
Компилятор вместо указания ошибки и места, где она возникает, выдает неопределенный internal error #112
Спасибо! Пробовал различные варианты, но не выходит никак
Собственно, логично, что не выходит. Заставить вызываться деструктор умного указателя раньше деструктора класса нельзя.
Попробуйте так:
Уж не знаю, что Вы такое делаете, но в MQL делать конструктор закрытым, имеет смысл только для синглтона.
Попробуйте так:
Спасибо за подробный пример! К сожалению, в нем конструктор не закрытый. С закрытым, конечно, не получается так.
Мне нужно, чтобы существовал скрытый от всех объект. При этом другой объект такого типа нельзя было никак создать.