Компилируется. То есть класс InnerClass видим за пределами класса OuterClass.
Да действительно, я проверял на своем коде и случайно дёрнул private метод внутреннего класса (а их там 99%). Ну тогда это вопрос к Ренату, о том насколько "Использовать можете как и в других языках". В Java/C# поведение отличается.
Dmitry Fedoseev:
Нет никакого выигрыша, кроме усложнения читаемости от вложенности.
Судить о выигрыше по крайне упрощённому примеру всё-же наверное не стоит ;) А если углубляться в данную дискуссию, то тут сразу вплывут Фаулер, Макконнелл, Роберт Мартин и далее имена по списку, с книгами которых крайне желательно ознакомиться что-бы предметно обсуждать дела архитектурно-философские. А это долго, нудно, холиварно и давно уже для меня не интересно :) И главное вряд-ли относится к тематике данного форума.
h.i.a: Да действительно, я проверял на своем коде и случайно дёрнул private метод внутреннего класса (а их там 99%). Ну тогда это вопрос к Ренату, о том насколько "Использовать можете как и в других языках". В Java/C# поведение отличается.
Да, действительно определение структуры/класса видно снаружи.
Экземпляры изолируются в области видимости, а вот определения нет.
void OnStart()
{
class A
{
public:
intget;
class B
{
public:
intset;
};
B b;
};
A a;
Print(a.b.set);
}
Понадобилось разместить класс внутри класса, в 5-ке так работает, а вот в 4-ке нет( очень жаль( Если бы, было множественное наследование, сделал бы с ним.
В 4-ке так, только структуры можно и то без типа string(.
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
А как вы проверили видимость?
Я вот так:
Компилируется. То есть класс InnerClass видим за пределами класса OuterClass.
Dmitry Fedoseev:
Нет никакого выигрыша, кроме усложнения читаемости от вложенности.
Судить о выигрыше по крайне упрощённому примеру всё-же наверное не стоит ;) А если углубляться в данную дискуссию, то тут сразу вплывут Фаулер, Макконнелл, Роберт Мартин и далее имена по списку, с книгами которых крайне желательно ознакомиться что-бы предметно обсуждать дела архитектурно-философские. А это долго, нудно, холиварно и давно уже для меня не интересно :) И главное вряд-ли относится к тематике данного форума.
Да действительно, я проверял на своем коде и случайно дёрнул private метод внутреннего класса (а их там 99%). Ну тогда это вопрос к Ренату, о том насколько "Использовать можете как и в других языках". В Java/C# поведение отличается.
Да, действительно определение структуры/класса видно снаружи.
Экземпляры изолируются в области видимости, а вот определения нет.
Подумаем над изоляцией.
В 4-ке так, только структуры можно и то без типа string(.Понадобилось разместить класс внутри класса, в 5-ке так работает, а вот в 4-ке нет( очень жаль(
Если бы, было множественное наследование, сделал бы с ним.
Pavel Verveyko #:
в 5-ке так работает, а вот в 4-ке нет
так работает:
так работает:
Да, действительно, даже string принимает.