Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Получи статус продавца и начни продавать свои сигналы!
Vladimir Pastushak
66185
Vladimir Pastushak 2016.04.12 12:01 

Суть следующая есть некое условие 

if(A && B && Z || K && D)

 Возможно ли программно изменить операторы &&, ||  ????

Комбинатор
15776
Комбинатор 2016.04.12 12:05  
Если это объекты, то да
Vladimir Pastushak
66185
Vladimir Pastushak 2016.04.12 12:06  
Комбинатор:
Если это объекты, то да

Можно простой пример ? 

ЗЫ справку смотрел и читал , не понимаю ... 

Vitalii Ananev
7885
Vitalii Ananev 2016.04.12 12:27  

Перегрузка функций в зависимости от типа переданного параметра вызывается нужная функция.

bool function(int s)
{
   return(A && B && Z || K && D)
}

bool function()
{
   return(A || B && Z || K && D)
}

bool function(double s)
{
   return(A && B && Z || K || D)
}
Ihor Herasko
8905
Ihor Herasko 2016.04.12 13:01  
Посмотрите еще в сторону перегрузки операторов. Хотя, напрямую && и || перегрузить нельзя, но можно использовать перегрузку операторов &= и |=.
Dmitry Fedoseev
42665
Dmitry Fedoseev 2016.04.12 13:09  
Vladimir Pastushak:

Суть следующая есть некое условие 

 Возможно ли программно изменить операторы &&, ||  ????

Непосредственно операторы заменить нельзя.

Выбор когда выполняется, при запуске программы, или в процессе выполнения тоже надо менять? 

Vladimir Pastushak
66185
Vladimir Pastushak 2016.04.12 13:09  
Dmitry Fedoseev:

Непосредственно операторы заменить нельзя.

Выбор когда выполняется, при запуске программы, или в процессе выполнения тоже надо менять? 

Да.
Dmitry Fedoseev
42665
Dmitry Fedoseev 2016.04.12 13:11  
Если при запуске программы, пишем базовый класс, в нем виртуальный метод с параметрами А, Б, С, и куча дочерних классов с различными вариантами этой функции. На запуске выбирается дочерний класс. 
Dmitry Fedoseev
42665
Dmitry Fedoseev 2016.04.12 13:11  
Vladimir Pastushak:
Да.

Да что? Как на такой вопрос можно ответить да или нет?

"Да" при запуске или "да" в процессе тоже? 

Vladimir Pastushak
66185
Vladimir Pastushak 2016.04.12 13:12  
Dmitry Fedoseev:
Да что? Как на такой вопрос можно ответить да или нет?
Пардон, Да - в процессе выполнения тоже надо менять
Комбинатор
15776
Комбинатор 2016.04.12 13:13  
Vladimir Pastushak:

Можно простой пример ?

class BoolWrapper
{
public:
   BoolWrapper(bool value)
      : value_(value)
   {
   }
   
   bool operator && (const BoolWrapper& other) const
   {
      return value_ && other.value_;
   }
   
private:
   bool value_;
};

string Str(bool value)
{
   return value ? "true" : "false";
}

int OnInit()
{
   BoolWrapper b1(true), b2(false);
   
   Print(Str(b1 && b1));
   Print(Str(b1 && b2));
   Print(Str(b2 && b1));
   Print(Str(b2 && b2));
   
   return(INIT_SUCCEEDED);
}
/ /1234
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий