Поиск:

Ответ в темуСоздание новой темы Создание опроса
> обращение к свойству класса 
:(
    Опции темы
retto
Дата 19.4.2010, 19:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 167
Регистрация: 30.10.2007
Где: Кривой Рог, Украи на

Репутация: нет
Всего: нет



Есть класс MyClass, в нем есть два свойства int First, int Second. Есть экземпляр класса myClass, возможно ли добраться до свойства класса зная его имя?  то-есть есть имя свойства char* propertyName = "First" и необходимо получить значение этого свойства. где-то так...
PM MAIL   Вверх
SickFxck
Дата 19.4.2010, 19:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 107
Регистрация: 16.4.2010

Репутация: нет
Всего: 1



Нет, нельзя. На момент выполнения программы нет никаких имён классов/переменных/методов.

Это сообщение отредактировал(а) SickFxck - 19.4.2010, 19:36
PM MAIL   Вверх
retto
Дата 19.4.2010, 19:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 167
Регистрация: 30.10.2007
Где: Кривой Рог, Украи на

Репутация: нет
Всего: нет



SickFxck, да ладно, object inspector жешь добирается к свойствам класса и их значениям
PM MAIL   Вверх
SickFxck
Дата 19.4.2010, 19:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 107
Регистрация: 16.4.2010

Репутация: нет
Всего: 1



retto, значит твой object inspector хранит какую-то связь между твоим исходным кодом и выполняемой программой, т.е. он, грубо говоря, ставит в соответствие объект в коде адресу этого объекта в памяти. В скомпилированной программе уже нет никаких имён, там только некие адреса.

Это сообщение отредактировал(а) SickFxck - 19.4.2010, 19:45
PM MAIL   Вверх
azesmcar
Дата 19.4.2010, 19:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 6
Всего: 211



Цитата(retto @  19.4.2010,  19:36 Найти цитируемый пост)
SickFxck, да ладно, object inspector жешь добирается к свойствам класса и их значениям 

Object inspector берет эту информацию из DFM файлов, и не в Run-Time а Design-Time.

Добавлено через 39 секунд
расскажи о задаче подробнее, можно подумать над решением с шаблонами во время компиляции.

Добавлено через 1 минуту и 38 секунд
хотя сомневаюсь, что в билдере можно что-то нормальное написать на шаблонах, все равно нормально не поддерживает..разве что последняя версия.
PM   Вверх
retto
Дата 19.4.2010, 20:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 167
Регистрация: 30.10.2007
Где: Кривой Рог, Украи на

Репутация: нет
Всего: нет



Цитата(azesmcar @  19.4.2010,  19:48 Найти цитируемый пост)
расскажи о задаче подробнее, можно подумать над решением с шаблонами во время компиляции.

дело даже не в задаче, ее можно решить кучей способов. просто думал что в С++ есть что-то по аналогии с C# reflection.

раз не так нет. тему можно считать закрытой.
PM MAIL   Вверх
azesmcar
Дата 19.4.2010, 20:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 6
Всего: 211



Ну есть какое то лимитированное подобие..
http://www.garret.ru/cppreflection/docs/re...ml#architecture
но я бы не не стал так извращаться.
PM   Вверх
retto
Дата 19.4.2010, 20:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 167
Регистрация: 30.10.2007
Где: Кривой Рог, Украи на

Репутация: нет
Всего: нет



Цитата(azesmcar @  19.4.2010,  20:43 Найти цитируемый пост)
Ну есть какое то лимитированное подобие..
http://www.garret.ru/cppreflection/docs/re...ml#architecture

уж как-то обойдусь без этого )
PM MAIL   Вверх
xvr
Дата 20.4.2010, 13:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 48
Всего: 223



В С++ reflection нет, но в Borland'овской версии С++ есть расширенный RTTI. Если твои проперти находятся в __published секции, то добраться можно. Формат этой информации в доках не описан, и меняется от версии к версии. Но есть хидер TypInfo.hpp, копай в этом направлении


PM MAIL   Вверх
retto
Дата 20.4.2010, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 167
Регистрация: 30.10.2007
Где: Кривой Рог, Украи на

Репутация: нет
Всего: нет



Цитата(xvr @  20.4.2010,  13:46 Найти цитируемый пост)
Но есть хидер TypInfo.hpp, копай в этом направлении

копал, есть PPropInfo  - можно вытащить данные о свойстве, но не его значение.
что доставать свойства необходимо чтобы класс был унаследован как минимум от TObject. Для пользовательских же классов данное PPropInfo   не применимо

Это сообщение отредактировал(а) retto - 20.4.2010, 14:00
PM MAIL   Вверх
xvr
Дата 20.4.2010, 21:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 48
Всего: 223



Цитата(retto @  20.4.2010,  13:56 Найти цитируемый пост)
что доставать свойства необходимо чтобы класс был унаследован как минимум от TObject.
Разумеется. TypeInfo работает только для VCL классов, т.е. унаследованных от TObject. Для не унаследованных оно просто не создается


PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0769 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.