На данный момент есть некоторые неудобства у меня. Есть методы, который не возвращают ничего. Т.е. у них тип void. Но согласно документации в класса нельзя использовать методы с типом void. Почему?
Если такой тип всё-таки использовать могут возникнуть проблемы в процессе работы? Ведь не всегда целесообразно что-то возвращать..
Видимо, Вы что-то перепутали. Методы класса могут иметь тип void. Приведите полную цитату, чтобы можно было понять, к чему относится указанный запрет.
Видимо, Вы что-то перепутали. Методы класса могут иметь тип void. Приведите полную цитату, чтобы можно было понять, к чему относится указанный запрет.
Сравните чем отличаются структуры и объекты
А чё сравнивать. Объект может быть как структуры, так и класса. Получается что это применимо тока к структурам, а к классам нет. Я имею ввиду ту цитату, которую я привёл. Вопрос снят.
А чё сравнивать. Объект может быть как структуры, так и класса. Получается что это применимо тока к структурам, а к классам нет. Я имею ввиду ту цитату, которую я привёл. Вопрос снят.
Изучите для начала, что такое методы структуры/класса и что такое хранимые данные. В приведённой цитате ясно сказано про данные. А у вас похоже в голове всё перемешано.
Вот здесь всё и есть:
Вот здесь явно сказано, что Структура - это набор элементов, кроме типа 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
Документация - низкого качества. Похоже, вместо специальных людей её пишут программисты, а для них некоторые нюансы настолько очевидны, что они даже не замечают, что могут быть неправильно поняты.
В данном случае имелись ввиду только элементы-данные, а не методы. Метод может "возвращать" void:
Не стоит делать такие громкие выводы насчёт качества документации, основываясь на непонимании её "чайниками" ввиду отсутствия у них базовых знаний о предмете. Документация не является обучающим пособием, поэтому не рассчитана на то чтобы разжёвывать каждое слово. Предполагается, что у человека уже есть знания в этой области, и он лишь хочет уточнить конкретные детали по поводу реализации этого в MQL.
Понятие структуры идёт ещё со времён динозавров, когда и ООП ещё не было - это просто некие данные, разбитые на отдельные элементы. Да и там по тексту очевидно, что речь идёт о данных. А кому не очевидно - читайте учебники.
Приведите пример элемента типа void.
int x;
double y;
void z; - такое нельзя? А такое вообще есть в природе? О чем написано словами "это набор элементов, кроме типа void"?
Не стоит делать такие громкие выводы насчёт качества документации, основываясь на непонимании её "чайниками" ввиду отсутствия у них базовых знаний о предмете. Документация не является обучающим пособием, поэтому не рассчитана на то чтобы разжёвывать каждое слово. Предполагается, что у человека уже есть знания в этой области, и он лишь хочет уточнить конкретные детали по поводу реализации этого в MQL.
Понятие структуры идёт ещё со времён динозавров, когда и ООП ещё не было - это просто некие данные, разбитые на отдельные элементы. Да и там по тексту очевидно, что речь идёт о данных. А кому не очевидно - читайте учебники.
Документация не должна быть двусмысленной. Зачем там вообще эта фраза о том, что "кроме типа void"? Для "чайников"? Документация тогда должна быть, хотя бы, последовательной. Что для данных - нельзя, а для функций - можно.
Есть реальный факт непонимания документации. Можно изголяться, защищая документацию в её текущем виде, выдумывая аргументы для оправдания "верности" текущего вида документации, а можно её поправить, чтобы, по возможности, уменьшить вероятность непонимания.
Не стоит делать такие громкие выводы насчёт качества документации, основываясь на непонимании её "чайниками" ввиду отсутствия у них базовых знаний о предмете. Документация не является обучающим пособием, поэтому не рассчитана на то чтобы разжёвывать каждое слово. Предполагается, что у человека уже есть знания в этой области, и он лишь хочет уточнить конкретные детали по поводу реализации этого в MQL.
Понятие структуры идёт ещё со времён динозавров, когда и ООП ещё не было - это просто некие данные, разбитые на отдельные элементы. Да и там по тексту очевидно, что речь идёт о данных. А кому не очевидно - читайте учебники.
Meat, а давай ка не не будем кидаться "чайниками". Структуры мало чем отличаются от классов как в Си, так и в С++. Если прочтёшь документацию по С++ увидишь, что разницы очень мало. Когда я читаю про структуры, я в уме применяю данные моменты и к классам.
Вот simpleton заметил верно то, что, речь идёт не об любых членах, а, именно, элемент-данные. Если для некоторых "чайников" и "кофейников" нет разницы между этими понятиями, то лучше не говорить, а молчать в стороне.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
На данный момент есть некоторые неудобства у меня. Есть методы, который не возвращают ничего. Т.е. у них тип void. Но согласно документации в класса нельзя использовать методы с типом void. Почему?
Если такой тип всё-таки использовать могут возникнуть проблемы в процессе работы? Ведь не всегда целесообразно что-то возвращать..