[АРХИВ!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 4. - страница 200
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
В одном индикаторе встретил такую конструкцию:
int R; //переменная объявлена на глобальном уровне
Эту же переменную со знаком & встретил в пользовательской функции примерно так:
void Function(int A, int B, int &R) {R = A*B}
Кто может подсказать, для чего это сделано и где об этом можно подробно прочитать?
В одном индикаторе встретил такую конструкцию:
int R; //переменная объявлена на глобальном уровне
Эту же переменную со знаком & встретил в пользовательской функции примерно так:
void Function(int A, int B, int &R) {R = A*B}
Кто может подсказать, для чего это сделано и где об этом можно подробно прочитать?
Учебник здесь, а также гугл - рулит!
Учебник здесь, а также гугл - рулит!
Я не понял, что изменится, если будет так:
void Function(int A, int B) {R = A*B}
Ведь переменная R объявлена на глобальном уровне и по-любому будет видна внутри функции. В каких случаях есть необходимость передавать параметры по ссылке?
Я не понял, что изменится, если будет так:
void Function(int A, int B) {R = A*B}
Ведь переменная R объявлена на глобальном уровне и по-любому будет видна внутри функции. В каких случаях есть необходимость передавать параметры по ссылке?
Читайте учебник, документацию, гуглите, здесь.
"При вызове функции swap создаются новые переменные a и b, им присваиваются значения 3 и 5. Эти переменные никак не связаны с переменными p и q и их изменение не изменяет значения p и q. Такой способ передачи параметров называется передачей параметров по значению.
Чтобы функция могла изменять значения переменных, объявленных в других функциях, необходимо указать, что передаваемый параметр является не просто константной величиной, а переменной, необходимо передавать значения по ссылке. Для этого функцию swap следовало бы объявить следующим образом:
void swap(int & a, int & b)
Амперсанды перед именем переменной означают, что эта переменная является не локальной переменной, а ссылкой на переменную, указанную в качестве параметра при вызове функции. Теперь при вызове swap(p,q) переменные a и b являются синонимами для переменных p и q, и изменение их значений влечет изменение значений p и q. А вот вызывать функцию в виде swap(3,5) уже нельзя, поскольку 3 и 5 — это константы, и сделать переменные синонимами констант нельзя"
Читайте учебник, документацию, гуглите, здесь.
"При вызове функции swap создаются новые переменные a и b, им присваиваются значения 3 и 5. Эти переменные никак не связаны с переменными p и q и их изменение не изменяет значения p и q. Такой способ передачи параметров называется передачей параметров по значению.
Чтобы функция могла изменять значения переменных, объявленных в других функциях, необходимо указать, что передаваемый параметр является не просто константной величиной, а переменной, необходимо передавать значения по ссылке. Для этого функцию swap следовало бы объявить следующим образом:
void swap(int & a, int & b)
Амперсанды перед именем переменной означают, что эта переменная является не локальной переменной, а ссылкой на переменную, указанную в качестве параметра при вызове функции. Теперь при вызове swap(p,q) переменные a и b являются синонимами для переменных p и q, и изменение их значений влечет изменение значений p и q. А вот вызывать функцию в виде swap(3,5) уже нельзя, поскольку 3 и 5 — это константы, и сделать переменные синонимами констант нельзя"
Спасибо за информацию
Можно, но нужно советник до ума доводить
Да это понятно:) Просто часто бывает какую-то стратегию просто пробуешь, тестерная версия, просто посмотреть как идея отрабатывает. Там и ошибки иногда совсем в ином свете всплывают. Да и некогда время тратить, если надо скоренько состряпать и посмотреть.
Можно ли как-то тупо его заткнуть, чтобы он то что пишет в журнал, не копировал в лог файл? Вопрос про это.
Да это понятно:) Просто часто бывает какую-то стратегию просто пробуешь, тестерная версия, просто посмотреть как идея отрабатывает. Там и ошибки иногда совсем в ином свете всплывают. Да и некогда время тратить, если надо скоренько состряпать и посмотреть.
Можно ли как-то тупо его заткнуть, чтобы он то что пишет в журнал, не копировал в лог файл? Вопрос про это.
Как можно верить советнику работающему с ошибками
Ему надо другое - чтоб по нажатию комбинации клавиш менялись внутренняя переменная программы, точка отсчета для построения индюкатора, а после чтобы линия пересчитывалась и перерисовывалась.
А почему кстати МТ не хочет хуки?
Спасибо,что поняли!):