Понимаю, что дело скорее всего совсем безнадежное, но все же .... Хочется динамически создавать новые классы (не объекты!) во время работы приложения ... в какую сторону копать ?
Здравствуйте, Аноним, Вы писали:
А>Понимаю, что дело скорее всего совсем безнадежное, но все же .... Хочется динамически создавать новые классы (не объекты!) во время работы приложения ... в какую сторону копать ?
А зачем?
Re[2]: Динамическое создание класса
От:
Аноним
Дата:
08.09.03 09:22
Оценка:
Здравствуйте, MaximE, Вы писали:
ME>Здравствуйте, Аноним, Вы писали:
А>>Понимаю, что дело скорее всего совсем безнадежное, но все же .... Хочется динамически создавать новые классы (не объекты!) во время работы приложения ... в какую сторону копать ?
ME>А зачем?
Например : во время работы приложения вытащил я из базы некий рекордсет, хочу на его основе сделать коллекцию объектов, с которой потом и работать ... т.к. sql запрос, по которому строится рекордсет заранее неизвестен, то как определить класс для объектов входящих в коллекцию ?
Вообщем вот такие вот смутные мысли ...
Здравствуйте, Аноним, Вы писали:
А>Понимаю, что дело скорее всего совсем безнадежное, но все же .... Хочется динамически создавать новые классы (не объекты!) во время работы приложения ... в какую сторону копать ?
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, MaximE, Вы писали:
ME>>Здравствуйте, Аноним, Вы писали:
А>>>Понимаю, что дело скорее всего совсем безнадежное, но все же .... Хочется динамически создавать новые классы (не объекты!) во время работы приложения ... в какую сторону копать ?
ME>>А зачем?
А>Например : во время работы приложения вытащил я из базы некий рекордсет, хочу на его основе сделать коллекцию объектов, с которой потом и работать ... т.к. sql запрос, по которому строится рекордсет заранее неизвестен, то как определить класс для объектов входящих в коллекцию ? А>Вообщем вот такие вот смутные мысли ...
Советую посмотреть паттерны проектирования — к твоей задаче относиться, я так думаю, Composite
Re[2]: Динамическое создание класса
От:
Аноним
Дата:
08.09.03 09:33
Оценка:
Здравствуйте, Zelo, Вы писали:
Z>Здравствуйте, Аноним, Вы писали:
А>>Понимаю, что дело скорее всего совсем безнадежное, но все же .... Хочется динамически создавать новые классы (не объекты!) во время работы приложения ... в какую сторону копать ?
Z>Может, попробуешь templates?
Как темплейты тут помочь могут ? Объясни в 2 словах, если не трудно
Здравствуйте, <Аноним>, Вы писали:
А>Понимаю, что дело скорее всего совсем безнадежное, но все же .... Хочется динамически создавать новые классы (не объекты!) во время работы приложения ... в какую сторону копать ?
[]
А>Например : во время работы приложения вытащил я из базы некий рекордсет, хочу на его основе сделать коллекцию объектов, с которой потом и работать ... т.к. sql запрос, по которому строится рекордсет заранее неизвестен, то как определить класс для объектов входящих в коллекцию ?
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, MaximE, Вы писали:
ME>>Здравствуйте, Аноним, Вы писали:
А>>>Понимаю, что дело скорее всего совсем безнадежное, но все же .... Хочется динамически создавать новые классы (не объекты!) во время работы приложения ... в какую сторону копать ?
C++ статически типизированный язык. Это означает, что можно работать только с объектами, тип которых известен во время компиляции. Как ты собираешься работать с объектами неизвестного типа?
ME>>А зачем?
А>Например : во время работы приложения вытащил я из базы некий рекордсет, хочу на его основе сделать коллекцию объектов, с которой потом и работать ... т.к. sql запрос, по которому строится рекордсет заранее неизвестен, то как определить класс для объектов входящих в коллекцию ?
Здравствуйте, Alexey Shirshov, Вы писали:
AS>Здравствуйте, <Аноним>, Вы писали:
А>>Понимаю, что дело скорее всего совсем безнадежное, но все же .... Хочется динамически создавать новые классы (не объекты!) во время работы приложения ... в какую сторону копать ?
AS>.NET
.NET не подходит. Нужено на чистом С++ , мягко выражаясь unmanaged
Re[4]: Динамическое создание класса
От:
Аноним
Дата:
08.09.03 10:03
Оценка:
Здравствуйте, MaximE, Вы писали:
ME>Здравствуйте, Аноним, Вы писали:
А>>Здравствуйте, MaximE, Вы писали:
ME>>>Здравствуйте, Аноним, Вы писали:
А>>>>Понимаю, что дело скорее всего совсем безнадежное, но все же .... Хочется динамически создавать новые классы (не объекты!) во время работы приложения ... в какую сторону копать ?
ME>C++ статически типизированный язык. Это означает, что можно работать только с объектами, тип которых известен во время компиляции. Как ты собираешься работать с объектами неизвестного типа?
Да, для клиента это будет проблематично.
Мысль такая — клиент знает какие колонки должны вернуться в рекордсете, соответственно он может ожидать что будет созждан динамический класс с полями идентичными по названиям колнкам рекордсета.
А работать он с объектами этого класса сможет например через указатель (или ссылку) на объект базавого класса (можно потребовать чтобы все "динамические классы" наследовались об общего предка).
Проблема только, к чему приводить потом этот указатель
ME>>>А зачем?
А>>Например : во время работы приложения вытащил я из базы некий рекордсет, хочу на его основе сделать коллекцию объектов, с которой потом и работать ... т.к. sql запрос, по которому строится рекордсет заранее неизвестен, то как определить класс для объектов входящих в коллекцию ?
ME>Читай Фаулера Patterns of Enterprise Application Architecture.
Хм, интересные паттерны . Но там только вкратце. Не знаешь где можно полный текст достать. С амазона заказывать дороговато. Может эта книга на русском есть или электронный вариант в сети на английском ?
Здравствуйте, Аноним, Вы писали:
А>>>>>Понимаю, что дело скорее всего совсем безнадежное, но все же .... Хочется динамически создавать новые классы (не объекты!) во время работы приложения ... в какую сторону копать ?
ME>>C++ статически типизированный язык. Это означает, что можно работать только с объектами, тип которых известен во время компиляции. Как ты собираешься работать с объектами неизвестного типа?
А>Да, для клиента это будет проблематично. А>Мысль такая — клиент знает какие колонки должны вернуться в рекордсете, соответственно он может ожидать что будет созждан динамический класс с полями идентичными по названиям колнкам рекордсета. А>А работать он с объектами этого класса сможет например через указатель (или ссылку) на объект базавого класса (можно потребовать чтобы все "динамические классы" наследовались об общего предка).
А>Проблема только, к чему приводить потом этот указатель
Очевидно, что для этого не требуется создавать классы в run-time
[]
ME>>Читай Фаулера Patterns of Enterprise Application Architecture.
А>Хм, интересные паттерны . Но там только вкратце. Не знаешь где можно полный текст достать. С амазона заказывать дороговато. Может эта книга на русском есть или электронный вариант в сети на английском ?
Здравствуйте, Alexey Shirshov, Вы писали:
AS>Здравствуйте, <Аноним>, Вы писали:
А>>Понимаю, что дело скорее всего совсем безнадежное, но все же .... Хочется динамически создавать новые классы (не объекты!) во время работы приложения ... в какую сторону копать ?
AS>.NET
Здравствуйте, Аноним, Вы писали:
А>Понимаю, что дело скорее всего совсем безнадежное, но все же .... Хочется динамически создавать новые классы (не объекты!) во время работы приложения ... в какую сторону копать ?
Как уже сказали, для задачи с рекордсетом новых классов создавать не нужно (к счастью, число типов в SQL ограничено...).
А если рассмотреть задачу саму по себе, то надо копать в сторону интерпретируемых языков — т.е. все хозяйство типа C++, Java и аналоги сразу отодвигаем. (Хотя... Что-то в Java есть на эту тему, класс Compiler, но тут я не компетентен). А вот Javascript это позволяет. (Жалко, что многого другого не позволяет). И в сторону функциональных языков (Prolog), где динамическое программирование в почете.
Здравствуйте, kulentsov, Вы писали:
K>Здравствуйте, Аноним, Вы писали:
А>>Понимаю, что дело скорее всего совсем безнадежное, но все же .... Хочется динамически создавать новые классы (не объекты!) во время работы приложения ... в какую сторону копать ?
K> Как уже сказали, для задачи с рекордсетом новых классов создавать не нужно (к счастью, число типов в SQL ограничено...). K> А если рассмотреть задачу саму по себе, то надо копать в сторону интерпретируемых языков — т.е. все хозяйство типа C++, Java и аналоги сразу отодвигаем. (Хотя... Что-то в Java есть на эту тему, класс Compiler, но тут я не компетентен). А вот Javascript это позволяет. (Жалко, что многого другого не позволяет). И в сторону функциональных языков (Prolog), где динамическое программирование в почете.
На самом деле языки 2-го и более высоких порядков поддаются компиляции,
хотя конечно же интерепретатор написать будет проще и видимо разумнее...