Аналог Q_PROPERTY |
Здравствуйте, гость ( Вход | Регистрация )
Аналог Q_PROPERTY |
igor_bogomolov |
30.7.2009, 10:58
Сообщение
#1
|
Профессионал Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: 29 |
Пытаюсь реализовать аналог Q_PROPERTY.
Раскрывающийся текст
Весь затык в том, что в базовый класс надо передать указатели на не статические методы классов потомков. Как можно решить эту проблему? Можно конечно для каждого метода делать,что-то вроде и передавать указатель уже этого методаНо тогда весь смысл в свойствах теряется. Как быть? Кто-нибудб делал что-то подобное. Может есть другой способ реализации PROPERTY? Сообщение отредактировал igor_bogomolov - 30.7.2009, 11:02 |
|
|
igor_bogomolov |
30.7.2009, 17:02
Сообщение
#2
|
Профессионал Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: 29 |
Вот что в результате получилось.
инклюдники и определения
класс Property
объявление классов для тестирования
main
результат Цитата Property_t = 125 Property_t = string Property_t = 1.89 Для чего это нужно, думаю и так понятно. Что бы имея указатель только на базовый класс, получить доступ к любому методу порожденного от него класса. У меня еще остался вопрос, по поводу очистки памяти в деструкторе. Достаточно ли просто сделать propMap.clear(); ??? |
|
|
Влад |
30.7.2009, 17:18
Сообщение
#3
|
Участник Группа: Участник Сообщений: 146 Регистрация: 20.3.2009 Из: Санкт-Петербург Пользователь №: 627 Спасибо сказали: 46 раз(а) Репутация: 8 |
Достаточно ли просто сделать propMap.clear(); ??? А зачем его делать? (То есть, делать тоже не возбраняется, конечно же...) При разрушении объекта твоего класса будет вызван деструктор члена propMap (который по сути std::map<>), а деструктор этого члена (== деструктор std::map<>) корректно очистит все, что нужно. |
|
|
Текстовая версия | Сейчас: 26.11.2024, 20:08 |