Ошибка компилятора. Не видит реализацию виртуального метода:
class A
{
public:
virtualvoid f() = 0;
};
class B : public A
{
public:
B() { }
B(const B&) { }
B GetB() // 'GetB' - cannot instantiate abstract class
{
B b;
return b;
}
virtual void f() { }
};
Как насчёт добавить неявный конструктор копирования для классов? Ведь для структур он имеется. Чем классы провинились?
struct S { char a; };
class C { };
S getS() { S s; return s; } // Всё ОК
C getC() { C c; return c; } // object of 'C' cannot be returned, copy constructor 'C::C(const C &)' not found
Не обновляется список экспертов в окне тестера терминала, в навигаторе обновляется... приходится каждый раз делать
перезапуск терминала, если создал новую ревизию эксперта.
В MQL не хватает возможности узнать имя файла по имеющемуся хэндлу. Часто бывает, что в функции, принимающей файловый хэндл,
возникает потребность допустим вывести имя файла. А таскать везде за собой дополнительный аргумент - это излишняя морока. Почему
бы не добавить функцию
FileGetString для этих целей с соответствующими свойствами: FILE_NAME, FILE_PATH_NAME. А также туда же можно
добавить FILE_FINAL_PATH_NAME для получения финального пути к файлу (раскрытие символической ссылки).
Alexey Navoykov: В MQL не хватает возможности
узнать имя файла по имеющемуся хэндлу. Часто бывает, что в функции, принимающей файловый хэндл, возникает потребность
допустим вывести имя файла. А таскать везде за собой дополнительный аргумент - это излишняя морока. Почему бы не добавить
функцию
FileGetString для этих целей с соответствующими свойствами: FILE_NAME, FILE_PATH_NAME. А также туда же можно
добавить FILE_FINAL_PATH_NAME для получения финального пути к файлу (раскрытие символической ссылки).
Создаю подобный объект. Где есть const string
FileName-поле. Ну и передаю указатель на него и т.д.
ЗЫ А так можно узнать с высокой вероятностью через FileGetInterger+FileFind*.
Создаю подобный объект. Где есть const string
FileName-поле. Ну и передаю указатель на него и т.д.
Ну это понятное дело, у вас там просто открытие файла. Имелись ввиду функции, обрабатывающие открытый файл. Взять для
примера стандартную библиотеку: там даже в базовом классе есть функции Read и Write, принимающие файловый хэндл.
p.s. А понял, вы имели ввиду какой-то другой объект. Но это уже немного другая тема. Речь идёт об универсальном штатном
функционале. Тогда бы и хранить не пришлось эти имена, а просто получать в любой момент.
Ошибка компилятора. Не видит реализацию виртуального метода:
p.s. А если поменять местами, то всё нормально )
Определите f выше GetB. Наверное, это ошибка.
Как насчёт добавить неявный конструктор копирования для классов? Ведь для структур он имеется. Чем классы провинились?
Не обновляется список экспертов в окне тестера терминала, в навигаторе обновляется...
приходится каждый раз делать перезапуск терминала, если создал новую ревизию эксперта.
нашел такой баг.
Не загружается Шаблон в тестере стратегий через меню Charts - Templates
если выбрать из списка, то не работает.
а если нажать на Load Template и выбрать файл - то все ОКЕ.
билд
и еще нет списка индикаторов, если индикаторы были загружены через шаблон:
Методы класса, помеченные как delete, продолжают появляться в списке подстановки имён. Желательно бы убрать, а то мешают.
Да, удобно делать public-наследование и при этом закрывать для юзера некоторые методы родителя.
В MQL не хватает возможности узнать имя файла по имеющемуся хэндлу. Часто бывает, что в функции, принимающей файловый хэндл, возникает потребность допустим вывести имя файла. А таскать везде за собой дополнительный аргумент - это излишняя морока. Почему бы не добавить функцию FileGetString для этих целей с соответствующими свойствами: FILE_NAME, FILE_PATH_NAME. А также туда же можно добавить FILE_FINAL_PATH_NAME для получения финального пути к файлу (раскрытие символической ссылки).
Создаю подобный объект. Где есть const string FileName-поле. Ну и передаю указатель на него и т.д.
ЗЫ А так можно узнать с высокой вероятностью через FileGetInterger+FileFind*.
Создаю подобный объект. Где есть const string FileName-поле. Ну и передаю указатель на него и т.д.
Ну это понятное дело, у вас там просто открытие файла. Имелись ввиду функции, обрабатывающие открытый файл. Взять для примера стандартную библиотеку: там даже в базовом классе есть функции Read и Write, принимающие файловый хэндл.
p.s. А понял, вы имели ввиду какой-то другой объект. Но это уже немного другая тема. Речь идёт об универсальном штатном функционале. Тогда бы и хранить не пришлось эти имена, а просто получать в любой момент.