Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Ошибки при работе с ADO (база на Access) на С++ http://www.cyberforum.ru/cpp-beginners/thread501717.html
При сохранении данных поля типа Decimal в базе Access (с помощью ADO MS Jet 4.0) при задании системе разделителя дробной части: запятая — Type mismatch in criteria expression Если поменять на...
C++ массив переменной длины Как в С++ сделать массив переменной длины (увеличивающийся), чтобы сохранялись хранящиеся там данные? Покопался, но нигде не могу найти. Или где об этом почитать? http://www.cyberforum.ru/cpp-beginners/thread501576.html
C++ Использование WS_TABSTOP, вертикальная полоса прокрутки у LISTBOX'а
Мне необходимо создать форму и компоненты (кнопки, списки и т. д.) с помощью WinAPI, почти всё получилось, но у меня возникло два вопроса: 1. Как сделать, чтобы работала клавиша tab для переключения...
Почему при чтении бинарного файла происходит экстренное завершение программы? C++
в Windows XP при чтение бинарного файла происходит екстренное завершение программы !!! /*Writing to a random access file */ #include <stdio.h> struct clientData { ...
C++ Нужно выводить текст в html http://www.cyberforum.ru/cpp-beginners/thread501504.html
Люди, помогите решить проблемку. Необходимо выводить пользователю текст представленный в виде хпмл и находящийся в строковой переменной(, т.е. < b > текст < / b> будет отображен как жирный). Да, еще...
C++ Ищу программистов для супер-проекта Хочу сразу предупредить, что все написанное в заголовке - правда. Проект действительно интересный и в случае его осуществления принесет участникам и славу и деньги. Такие проекты каждый день не... подробнее

Показать сообщение отдельно
GKosh
0 / 0 / 0
Регистрация: 27.05.2010
Сообщений: 9

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

28.02.2012, 10:55. Просмотров 762. Ответов 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 находится только в базовом классе.
Вопрос - может быть что-нибудь есть дурного в таком подходе, пока я его еще не отладил но у меня имеются некоторые сомнения в его надежности. Возможно есть проверенные методы о которых я, к сожалению, не в курсе.

Заранее благодарен,
Константин.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru