Ошибки, баги, вопросы - страница 1978
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Добрый день.
Мне одному кажется что вот такой код не должен компилироваться (должна быть private member access error)?
В СД говорят что все ок, и так можно...
Добрый день.
Мне одному кажется что вот такой код не должен компилироваться (должна быть private member access error)?
В СД говорят что все ок, и так можно...
Согласно правилам MQL экземпляр класса может свободно обращаться к закрытым полям и методам другого экземпляра, если он принадлежит тому же классу, что и первый. Так-как сB наследуется от cA, то cB и есть cA, а следовательно cA может обращаться к любым закрытым методам и полям экземпляра cB, не зависимо от того, где он объявлен.
Согласно правилам MQL экземпляр класса может свободно обращаться к закрытым полям и методам другого экземпляра, если он принадлежит тому же классу, что и первый. Так-как сB наследуется от cA, то cB и есть cA, а следовательно cA может обращаться к любым закрытым методам и полям экземпляра cB, не зависимо от того, где он объявлен.
Спасибо. В документации об этом не встречал. Можете ткнуть носом?
Спасибо. В документации об этом не встречал. Можете ткнуть носом?
Это и в C++ так (а MQL строится по образу и подобию C++). Как говорят, приватность C++ - на уровне класса, а не объекта. Иначе было бы невозможно сделать, например, copy-конструктор, без специальных методов getter-ов для всех приватных полей.
Это и в C++ так
Спасибо. В документации об этом не встречал. Можете ткнуть носом?
Соответственно доступ к testfunc() возможен только (и только) из методов cA:: -> в данном случае из сA::test()
А вы пробовали этот пример в С++ компилировать - или это общие теоретические рассуждения?
А вы по ссылке пробовали переходить? Там можно не только откомпилировать, но и успешно выполнить пример.
А вы по ссылке пробовали переходить? Там можно не только откомпилировать, но и успешно выполнить пример.
Почему тогда такой код не работает?
Я не вижу разницы между (1) и (2).
А вы по ссылке пробовали переходить? Там можно не только откомпилировать, но и успешно выполнить пример.