Добавьте после второго класса:
CEnvironment * CEAFactoryAbstract::meCEnvironment=NULL;
Dmitry Fedoseev:
Добавьте после второго класса:
Спасибо!
Зачем так много букв?
class CEnvironment { CEnvironment():meS("meS"){} public: string meS; static CEnvironment* Get(){ static CEnvironment obj; return &obj;} }; void OnStart() { Print(CEnvironment::Get().meS); }
или, если надо возможность наследования, контроля количества ссылок и т.п.:
class CEnvironment { protected: static CEnvironment* obj; CEnvironment():meS("meS"){} ~CEnvironment(){} public: string meS; static CEnvironment* Get(){ if (!obj) obj=new CEnvironment; return obj;} static void Free() {delete obj;} }; CEnvironment* CEnvironment::obj=NULL; void OnStart() { Print(CEnvironment::Get().meS); CEnvironment::Free(); }
Vladimir Simakov:
Зачем так много букв?
или, если надо возможность наследования, контроля количества ссылок и т.п.:
спасибо!
Иногда нужны дополнительные буквы ))
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Здравствуйте!
Стоит задача выдавать желающим единственный экземпляр класса CEnvironment, пишу:
при компилировании, получаю
unresolved static variable 'CEAFactoryAbstract::meCEnvironment' FactoryStatic.mq5 16 54
Прочел, https://www.mql5.com/ru/forum/65668, понял, что вне класса нужно указывать явно указывать где определяется статическая переменная, но не понял, что делать, если static используется внутри.
?