Скачать MetaTrader 5

Классы и типы методов в них...

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Знаете ли вы, что в MQL5 появилась обработка событий?
hoz
1936
hoz 2014.08.10 12:29 

 На данный момент есть некоторые неудобства у меня. Есть методы, который не возвращают ничего. Т.е. у них тип void. Но согласно документации в класса нельзя использовать методы с типом void. Почему?

 Если такой тип всё-таки использовать могут возникнуть проблемы в процессе работы? Ведь не всегда целесообразно что-то возвращать..

Ihor Herasko
9064
Ihor Herasko 2014.08.10 13:13  
hoz:

 На данный момент есть некоторые неудобства у меня. Есть методы, который не возвращают ничего. Т.е. у них тип void. Но согласно документации в класса нельзя использовать методы с типом void. Почему?

 Если такой тип всё-таки использовать могут возникнуть проблемы в процессе работы? Ведь не всегда целесообразно что-то возвращать..


Видимо, Вы что-то перепутали. Методы класса могут иметь тип void. Приведите полную цитату, чтобы можно было понять, к чему относится указанный запрет.
hoz
1936
hoz 2014.08.10 15:33  
Scriptong:

Видимо, Вы что-то перепутали. Методы класса могут иметь тип void. Приведите полную цитату, чтобы можно было понять, к чему относится указанный запрет.
Вот здесь всё и есть:
Структура является набором элементов произвольного типа (кроме типа void). Таким образом, структура объединяет логически связанные данные разных типов.
Вот здесь явно сказано, что Структура - это набор элементов, кроме типа void. Ведь так? Как это можно ещё понимать?
Victor Nikolaev
Модератор
14521
Victor Nikolaev 2014.08.10 15:54  
hoz:
Вот здесь всё и есть:
Вот здесь явно сказано, что Структура - это набор элементов, кроме типа void. Ведь так? Как это можно ещё понимать?

Сравните чем отличаются структуры и объекты
hoz
1936
hoz 2014.08.10 16:18  
Vinin:

Сравните чем отличаются структуры и объекты

А чё сравнивать. Объект может быть как структуры, так и класса. Получается что это применимо тока к структурам, а к классам нет. Я имею ввиду ту цитату, которую я привёл. Вопрос снят.
Alexey Navoykov
3988
Alexey Navoykov 2014.08.10 18:19  
hoz:

А чё сравнивать. Объект может быть как структуры, так и класса. Получается что это применимо тока к структурам, а к классам нет. Я имею ввиду ту цитату, которую я привёл. Вопрос снят.

Изучите для начала, что такое методы структуры/класса и что такое хранимые данные. В приведённой цитате ясно сказано про данные.  А у вас похоже в голове всё перемешано.
Простак
315
Простак 2014.08.10 18:30  
hoz:
Вот здесь всё и есть:
Вот здесь явно сказано, что Структура - это набор элементов, кроме типа void. Ведь так? Как это можно ещё понимать?

Документация - низкого качества. Похоже, вместо специальных людей её пишут программисты, а для них некоторые нюансы настолько очевидны, что они даже не замечают, что могут быть неправильно поняты.

В данном случае имелись ввиду только элементы-данные, а не методы. Метод может "возвращать" void:

#property strict

/******************************************************************************/
struct S {
  int i;

  void method() {
    Print("i = ", i);
  }
};

/******************************************************************************/
void OnStart() {
  S s = {3};

  s.method();
}

Этот пример компилируется без замечаний и работает:

22:19:10 Script 3 EURUSDm,H1: loaded successfully
22:19:10 3 EURUSDm,H1: initialized
22:19:10 3 EURUSDm,H1: i = 3
22:19:10 3 EURUSDm,H1: uninit reason 0
22:19:10 Script 3 EURUSDm,H1: removed
Alexey Navoykov
3988
Alexey Navoykov 2014.08.11 04:05  
simpleton:

Документация - низкого качества. Похоже, вместо специальных людей её пишут программисты, а для них некоторые нюансы настолько очевидны, что они даже не замечают, что могут быть неправильно поняты.

В данном случае имелись ввиду только элементы-данные, а не методы. Метод может "возвращать" void:

Не стоит делать такие громкие выводы насчёт качества документации, основываясь на непонимании её "чайниками" ввиду отсутствия у них базовых знаний о предмете. Документация не является обучающим пособием, поэтому не рассчитана на то чтобы разжёвывать каждое слово. Предполагается, что у человека уже есть знания в этой области, и он лишь хочет уточнить конкретные детали по поводу реализации этого в MQL.

Понятие структуры идёт ещё со времён динозавров, когда и ООП ещё не было - это просто некие данные, разбитые на отдельные элементы.   Да и там по тексту очевидно, что речь идёт о данных.  А кому не очевидно - читайте учебники.

Dmitry Fedoseev
42921
Dmitry Fedoseev 2014.08.11 04:22  

Приведите пример элемента типа void.

int x;

double y;

void z; - такое нельзя? А такое вообще есть в природе? О чем написано словами "это набор элементов, кроме типа void"?

Простак
315
Простак 2014.08.11 18:55  
Meat:

Не стоит делать такие громкие выводы насчёт качества документации, основываясь на непонимании её "чайниками" ввиду отсутствия у них базовых знаний о предмете. Документация не является обучающим пособием, поэтому не рассчитана на то чтобы разжёвывать каждое слово. Предполагается, что у человека уже есть знания в этой области, и он лишь хочет уточнить конкретные детали по поводу реализации этого в MQL.

Понятие структуры идёт ещё со времён динозавров, когда и ООП ещё не было - это просто некие данные, разбитые на отдельные элементы.   Да и там по тексту очевидно, что речь идёт о данных.  А кому не очевидно - читайте учебники.

Документация не должна быть двусмысленной. Зачем там вообще эта фраза о том, что "кроме типа void"? Для "чайников"? Документация тогда должна быть, хотя бы, последовательной. Что для данных - нельзя, а для функций - можно.

Есть реальный факт непонимания документации. Можно изголяться, защищая документацию в её текущем виде, выдумывая аргументы для оправдания "верности" текущего вида документации, а можно её поправить, чтобы, по возможности, уменьшить вероятность непонимания.

hoz
1936
hoz 2014.08.14 05:33  
Meat:

Не стоит делать такие громкие выводы насчёт качества документации, основываясь на непонимании её "чайниками" ввиду отсутствия у них базовых знаний о предмете. Документация не является обучающим пособием, поэтому не рассчитана на то чтобы разжёвывать каждое слово. Предполагается, что у человека уже есть знания в этой области, и он лишь хочет уточнить конкретные детали по поводу реализации этого в MQL.

Понятие структуры идёт ещё со времён динозавров, когда и ООП ещё не было - это просто некие данные, разбитые на отдельные элементы.   Да и там по тексту очевидно, что речь идёт о данных.  А кому не очевидно - читайте учебники.

Meat, а давай ка не не будем кидаться "чайниками". Структуры мало чем отличаются от классов как в Си, так и в С++. Если прочтёшь документацию по С++ увидишь, что разницы очень мало. Когда я читаю про структуры, я в уме применяю данные моменты и к классам.

Вот simpleton заметил верно то, что, речь идёт не об любых членах, а, именно, элемент-данные. Если для некоторых "чайников" и "кофейников" нет разницы между этими понятиями, то лучше не говорить, а молчать в стороне.

1234
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий