Может ли функция принимать разные структуры но похожего типа, имеется в виду объявить 2 структуры у каждой структуры по 2 массива функция примет любую из структур или это невозможно также возникает вопрос с типами данных шаблоны тут уже не помогут?
Описание структуры, типа такого:
struct SS{
double s[];
}
Это подобно создание переменой своего типа, так же как int, double и т.п. Прежде чем пользоваться переменной собственного типа, нужно ее объявить, как и с обычной переменной:
SS a;
Модно сколько угодно переменных объявить:
SS b,c,d;
SS e,f,g;
Главное, что они одного типа.
Параметры функции определяются типом, в частности сейчас нужна функция принимающая тип SS. Вот так:
void fun(SS & arg){
}
В эту функцию можно передать любую переменную типа SS: a,b,c,d,e,f и т.д.
Если вам нужна еще одна структура, точно такая же, как уже описанная ранее, не нужно делать ее описание, объявите переменную типа SS.
---
Другое дело, если все таки в функцию надо передавать переменные (структуры) разного типа. Это тоже возможно в какой-то мере. Все эти структуры должны иметь одну и ту же базовую структуру, в переменная функции должна иметь тип как у базовой структуры. Тут есть нюанс, если дочерняя структура будет иметь свои уникальные поля и методы, доступ к ним будет усложнен.
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Может ли функция принимать разные структуры но похожего типа, имеется в виду объявить 2 структуры у каждой структуры по 2 массива функция примет любую из структур или это невозможно также возникает вопрос с типами данных шаблоны тут уже не помогут?
Описание структуры, типа такого:
Это подобно создание переменой своего типа, так же как int, double и т.п. Прежде чем пользоваться переменной собственного типа, нужно ее объявить, как и с обычной переменной:
Модно сколько угодно переменных объявить:
Главное, что они одного типа.
Параметры функции определяются типом, в частности сейчас нужна функция принимающая тип SS. Вот так:
void fun(SS & arg){ }В эту функцию можно передать любую переменную типа SS: a,b,c,d,e,f и т.д.
Если вам нужна еще одна структура, точно такая же, как уже описанная ранее, не нужно делать ее описание, объявите переменную типа SS.
---
Другое дело, если все таки в функцию надо передавать переменные (структуры) разного типа. Это тоже возможно в какой-то мере. Все эти структуры должны иметь одну и ту же базовую структуру, в переменная функции должна иметь тип как у базовой структуры. Тут есть нюанс, если дочерняя структура будет иметь свои уникальные поля и методы, доступ к ним будет усложнен.