Я не могу понять, как определить значения по умолчанию для функций в моей библиотеке. Значения по умолчанию, как правило, игнорируются, и я получаю сообщение об ошибке «неверный подсчет параметров»
Вот мой пример. Я создал простую тестовую библиотеку experts\libraries\test.mq4
:
void test(int i = 0) // Note the default value for "i"
{
}
Затем я создал .mqh
файл как experts\include\test.mqh
:
#import "test.ex4"
void test(int i = 0); // Note the default value for "i"
#import
Теперь я создаю простого эксперта «expert \ simpletest.mq4»:
#include <test.mqh>
int start()
{
// Should be able to call test() function without providing any arguments,
// because it has default value.
// If I change this line to test(0), everything compiles correctly
test(); // Causes "wrong parameters count" compilation error
return(0);
}
И я получаю следующую ошибку при вызове функции test ():
')' - неверный счетчик параметров
Если я изменю этот вызов функции на test(0)
, все скомпилируется, но я смогу вызвать функцию test()
без предоставления каких-либо параметров, потому что у меня есть значение по умолчанию для первого параметра в файле .mqh, например: void тест (int i = 0);
Почему он не использует значение по умолчанию?
Я ищу в Google любую подсказку, но не могу найти никаких ссылок на эту проблему. Кто-нибудь знает?