Ошибки, баги, вопросы - страница 1919
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
В mql нужно проверять код ошибки явно (во время выполнения), а во время компиляции итак выскочит предупреждение, при возможной ошибке в приведении типов.
Так вот и хочется частично отключить выборочно, вывод ошибок во время компиляции.
Так вот и хочется частично отключить выборочно, вывод ошибок во время компиляции.
Неоднозначность
В то же время без строки protected: (*) - компилируется без ошибокОжидалось: одинаковое поведение как со строкой protected: (*) - так и без нее
Дополнительно: C++ не компилирует оба случая
Неоднозначность
В то же время без строки protected: (*) - компилируется без ошибокОжидалось: одинаковое поведение как со строкой protected: (*) - так и без нее
"Предок" видеть protected/private-поля и не должен.
Если хочется B::f() определять в A::f(), то придется что-то придумать в данном случае.Дополнительно: C++ не компилирует оба случая
Если добавить
struct B;
в начале кода, один из двух случаев по идее должен компилироваться. может mql компилятор такой умный что сам недостающую форвард декларацию добавляет?
"Предок" видеть protected/private-поля и не должен.
А public-поля: должен/не должен?
Если добавить
struct B;
А public: должен/не должен?
public static-поле - обязан.
Обобщая: Базовый класс не видит не static поля производного. Одновременно базовый класс не видит protected static производного, но видит public static. Вы сами придумали это правило?
Мне сложно сказать, откуда сделаны такие обобщения. Сам такое никак не имел в виду.
Любой класс видит public static поля/методы любого другого класса.
Базовый класс никогда не видит protected/private (static - без разницы) поля/методы производного (public-наследование).
Производный класс (public-наследование) никогда не видит private поля/методы базового, но всегда видит - protected/public.