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

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

Восстановить пароль Регистрация
 
GKosh
0 / 0 / 0
Регистрация: 27.05.2010
Сообщений: 9
28.02.2012, 10:55     Карта свойств класса #1
Необходимо было реализовать сериализацию для иерархии собственных классов, сделал так:
Базовый класс всей иерархии имеет динамический список структур вида

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++
C++ Получение списка public свойств класса
как узнать,является данный объект класса А1 наследником класса А2 C++
Как получить private переменную класса, функцей членом другого класса C++
Структура, как одно из свойств класса C++
Как обраиться к функции класса через другую функцию класса (друга)? C++
Как получить доступ к методам класса, который содержится в векторе класса C++
Может ли метод родительского класса обратиться к полю дочернего класса C++

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

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

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