Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Я не против полиморфизма, и написал, что если уж так надо - то чем не устраивают классы ?
Тем, что данные обычно хранятся в структурах. И чтобы передать эту структуру в некий универсальный обработчик, нужно во-первых, создавать обёртку из класса для каждой структуры. Во-вторых, в процессе копировать структуру в эту обёртку, отправлять класс на обработку, потом копировать изменённую структуру обратно из обёртки. Это всё затратно и по производительности, и по объёму лишнего кода. Если можно было бы просто реализовать интерфейсные методы в самой структуре и передавать её по ссылке, ничего не перекопируя.
А вот насчет "в С# структуры поддерживают интерфейсы" - тут я против. Структура тем и отличается от класса, что это, по идее, "голые данные". Без всяких там дополнительных функций.
Если нужно сейчас, то такой обход
ЗЫ Возможно ли как-то унаследоваться от структуры, чтобы в нее попали только данные базовой структуры - методы/операторы/конструкторы не входили?
Если нужно сейчас, то такой обход
Я работу этого не проверял, но вы уверены, что это то что требуется? Насколько я понимаю, тут просто создаётся пустой объект производного класса и в него копируются данные базового класса . А смысл? Ведь все исходные данные находятся как-раз таки в производном классе.
Единственное решение сейчас я вижу только через использование внешних winapi-функций для копирования, типа memcpy. Но это тоже не универсальный вариант, т.к. придётся заранее импортировать функцию для каждого типа структуры.
Я работу этого не проверял, но вы уверены, что это то что требуется? Насколько я понимаю, тут просто создаётся пустой объект производного класса и в него копируются данные базового класса . А смысл? Ведь все исходные данные находятся как-раз таки в производном классе.
Сделал рабочим ваш код. Его смысл должен быть известен автору.
Сделал рабочим ваш код. Его смысл должен быть известен автору.
Т.е. вы хотели сказать: "компилируемым"? ) Ну да, спасибо за труды ) Но можно было и проще:
Т.е. вы хотели сказать: "компилируемым"? ) Ну да, спасибо за труды ) Но можно было и проще:
Посмотрел код внимательнее. К сожалению, видится бредовым, а-ля "хочу через одно место...": структуру привести к базовой, а потом сделать обратный ход.
Почему это компилируется - вопрос.
Формально наследуем структуру от себя же. Понятно, что в этой конструкции используется уловка для обхода/использования правил компилятора. Но по логике - здесь что-то с чем-то не дружит.
Формально наследуем структуру от себя же. Понятно, что в этой конструкции используется уловка для обхода/использования правил компилятора. Но по логике - здесь что-то с чем-то не дружит.