Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
GKosh
0 / 0 / 0
Регистрация: 27.05.2010
Сообщений: 9
#1

Карта свойств класса - C++

28.02.2012, 10:55. Просмотров 744. Ответов 0
Метки нет (Все метки)

Необходимо было реализовать сериализацию для иерархии собственных классов, сделал так:
Базовый класс всей иерархии имеет динамический список структур вида

struct PROPERTY {
const char* sProperty; // имя переменной - члена класса
void** pProperty; // указатель на переменную
SERIA_TYPE Type; // метка типа переменной (int, float, string, object)
};

по идее - это как бы карта свойств объекта, базовый класс реализует так же метод:
void Register_Property (const char* a_name, void* a_pointer, SERIA_TYPE a_type)
для заполнения этого списка указателями на переменные.
Каждый класс иерархии в своем конструкторе регистрирует свои переменные этой функцией, после чего наследованные методы базового класса Serialize/Deserialize уже спокойно записывают, считывают заполненный список указателей.
Таким образом практически вся реализация ser/deser находится только в базовом классе.
Вопрос - может быть что-нибудь есть дурного в таком подходе, пока я его еще не отладил но у меня имеются некоторые сомнения в его надежности. Возможно есть проверенные методы о которых я, к сожалению, не в курсе.

Заранее благодарен,
Константин.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.02.2012, 10:55     Карта свойств класса
Посмотрите здесь:

C++ Получение списка public свойств класса
Оптимизация работы метода класса с объектами класса [C++] C++
C++ Вызов функций класса Dictionary функциями дружественного класса
C++ Статическое поле класса, имеющее тип того же класса
Структура, как одно из свойств класса C++
C++ Разное значение переменной класса, в разных экземплярах класса
C++ Как полю класса А обратится к приватной функции класса А?
Нужен пример неизменяемого класса и класса от которого нельзя наследоваться C++
Наследование свойств C++
Составьте программу, выводящую на экран сообщения об отличниках класса, о средней успеваемости учащихся класса C++
Обработка метода класса в зависимости от типа данного класса C++
Объявление объекта класса fstream в качестве статической компоненты другого класса C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 06:09. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru