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

Карта свойств класса - 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++): _variant_t vtAlt = Значение Double; vtAlt.ChangeType(VT_DECIMAL); m_pRec->Fields->GetItem(_bstr_t("ALTITUDE"))->put_Value(vtAlt);
C++ массив переменной длины Как в С++ сделать массив переменной длины (увеличивающийся), чтобы сохранялись хранящиеся там данные? Покопался, но нигде не могу найти. Или где об этом почитать? http://www.cyberforum.ru/cpp-beginners/thread501576.html
C++ Использование WS_TABSTOP, вертикальная полоса прокрутки у LISTBOX'а
Мне необходимо создать форму и компоненты (кнопки, списки и т. д.) с помощью WinAPI, почти всё получилось, но у меня возникло два вопроса: 1. Как сделать, чтобы работала клавиша tab для переключения между компонентами, я пробовал указывать WS_TABSTOP при создании компонентов, но это не дало эффекта? 2. Как показать вертикальную полосу прокрутки у LISTBOX'а?
Почему при чтении бинарного файла происходит экстренное завершение программы? C++
в Windows XP при чтение бинарного файла происходит екстренное завершение программы !!! /*Writing to a random access file */ #include <stdio.h> struct clientData { int acctNum; /* account number */ char lastName; /* account last name */ char firstName; /* account first name */ double balance; /*...
C++ Нужно выводить текст в html http://www.cyberforum.ru/cpp-beginners/thread501504.html
Люди, помогите решить проблемку. Необходимо выводить пользователю текст представленный в виде хпмл и находящийся в строковой переменной(, т.е. < b > текст < / b> будет отображен как жирный). Да, еще там могут быть картинки с диска. Как и что использовать? Как вариант - CppWebBrowser, но что-то там все слишком запутано, а по-русски почитать не найду. И еще бы иметь возможность делать обратное...
C++ Ищу программистов для супер-проекта Хочу сразу предупредить, что все написанное в заголовке - правда. Проект действительно интересный и в случае его осуществления принесет участникам и славу и деньги. Такие проекты каждый день не предлагают. Но... Денег платить программистам нет. Поэтому нужны добровольцы. Конкретно - люди пишущие на С++. У которых есть время для работы над проектом. И хорошая голова, потому что дело это... подробнее

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

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

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

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