|
3 / 3 / 0
Регистрация: 25.09.2009
Сообщений: 122
|
|
Получение списка public свойств класса01.11.2011, 18:20. Показов 4552. Ответов 10
Метки нет (Все метки)
Имеется набор различных классов с различными количествами публичных текстовых свойств. Мне нужно эти поля редактировать. Как получить список публичных полей класса и определить тип данных поля, чтение/запись? Это вообще возможно?
0
|
|
| 01.11.2011, 18:20 | |
|
Ответы с готовыми решениями:
10
получение свойств класса Вызов public метода public класса внутри static метода static класса Наследование от protected класса: будут ли public члены класса Б доступны классу А |
|
Заблокирован
|
||
| 01.11.2011, 18:24 | ||
|
Кстати сказать, а не объясните, что означает термин "текстовое свойство"?!
0
|
||
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
| 01.11.2011, 18:37 | |
|
some777, Вам точно плюсы нужны? В чистых плюсах свойств нет. Другое дело если что-то из .NET
0
|
|
|
Заблокирован
|
||
| 01.11.2011, 19:25 | ||
|
рефлексия доступна с Qt, покрайней мере кое-что, глубоко я не разбирался. По удобству использования значительно уступает аналогичным средствам Java
http://doc.trolltech.com/4.5/metaobjects.html в конце страницы ссылки, там пощёлкаешь и раскрутишь всё это дело Добавлено через 7 минут остальное честно говоря не понял
0
|
||
|
3 / 3 / 0
Регистрация: 25.09.2009
Сообщений: 122
|
|||
| 01.11.2011, 20:26 [ТС] | |||
|
Всем откликнувшимся - спасибо, решил хранить список полей прям в классе.
0
|
|||
|
Заблокирован
|
||
| 01.11.2011, 20:29 | ||
|
0
|
||
|
3 / 3 / 0
Регистрация: 25.09.2009
Сообщений: 122
|
|
| 02.11.2011, 09:55 [ТС] | |
|
Как уже сообщал, попытаюсь в каждом классе подготовить массив структур паблик свойств (название, тип, тип доступа).
Хотелось бы в конструкторе каждого из классов заполнить этот массив структур. Как можно получить список свойств своего класса?
0
|
|
|
Заблокирован
|
||
| 02.11.2011, 10:43 | ||
|
нету в С++ средств для того чтобы во время выполнения издеваться над классами. На этапе компиляции проблем нет, скурпулёзно заполняй и выводи что хочешь. Но это не рефлексия, а реализация настоящей рефлексии явно выше уровня этого раздела. Для этого как вариант придётся писать чтото вроде moc с Q_OBJECT, нетривиальная задача
Добавлено через 4 минуты
0
|
||
|
3 / 3 / 0
Регистрация: 25.09.2009
Сообщений: 122
|
||
| 02.11.2011, 13:57 [ТС] | ||
|
0
|
||
|
Заблокирован
|
||
| 02.11.2011, 14:09 | ||
|
some777, есть такой слегка извращённый вариант, когда паблик-членом класса является не сам стринг, а НЕЧТО в духе TProperty<std::string> myPropertyText
Настройка объекта пропертей выполняется конструктором класса (либо, что менее универсально - конструктором проперти спиализированном для стрингов). То есть происходит настройка "невидимых" геттеров/сеттеров. Класс-клиент в любом случае должен будит хардкорно самостоятельно знать, какие именно поля-проперти в него воткнули, и уметь выдавать эти данные наружу. Разных идей реализации шаблонного класса TProperty<тип> в сети гуляет масса. Некоторые из них весьма шустро работают. Проблема в том, что в с++ все они в той или иной степени конфликтуют с парадигмой ООП. И по сути являются костыльным сахаром. Шаг в сторону - нарушение инкапсуляции, шаг в другую сторону - невозможно реализовать тот, или иной функционал для пропертей. Я бы на вашем месте смотрел бы в сторону "фабрики объектов"
0
|
||
| 02.11.2011, 14:09 | |
|
Помогаю со студенческими работами здесь
11
Целесообразность использования свойств вместо public полей в приложениях, где важна скорость Private и public члены класса Получение свойств MS-документа.
Получение свойств формы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|