у множества классов определен static public член — type_num.
class X
{
static public type_id_;
virtual public type_id(): int
{
type_id_
}
}
class childX
{
new static public type_id_;
override public type_id(): int
{
type_id_
}
}
как, имея имя класса в строке, установить его type_id_ в нужное значение?
решения с генерацией в каждом классе установочного виртуального метода хотелось бы избежать.
(слишком явный костыль).
напомню, что доступ туда из динамически созданных объектов считается ошибкой.
Re: как изменить статическое поле класса, заданного строкой
_C_>как, имея имя класса в строке, установить его type_id_ в нужное значение?
_C_>решения с генерацией в каждом классе установочного виртуального метода хотелось бы избежать. _C_>(слишком явный костыль).
_C_>напомню, что доступ туда из динамически созданных объектов считается ошибкой.
А что вы хотите получить-то? То есть зачем вам номер, и почему важно чтобы он был задан в каком-то другом месте?
Re[2]: как изменить статическое поле класса, заданного строк
C>А что вы хотите получить-то? То есть зачем вам номер, и почему важно чтобы он был задан в каком-то другом месте?
датабаза у меня. для синхронизации номеров в базе и ассембле — в последнем типы могут поменяться/удалиться/добавиться,
и я при открытии связываю их. вариантов разных сделать это много, но это самый быстрый.
Re[3]: как изменить статическое поле класса, заданного строк
C>>А что вы хотите получить-то? То есть зачем вам номер, и почему важно чтобы он был задан в каком-то другом месте? _C_>датабаза у меня. для синхронизации номеров в базе и ассембле — в последнем типы могут поменяться/удалиться/добавиться, _C_>и я при открытии связываю их. вариантов разных сделать это много, но это самый быстрый.
То есть связываете в рантайме?
Re[4]: как изменить статическое поле класса, заданного строк
Здравствуйте, _Claus_, Вы писали:
C>>То есть связываете в рантайме? _C_>да.
ну тогда макросы мало здесь могут помочь, только создать методы для установки идентификатора, если установка в рантайме то можно решить только существующими путями, сделать статические или виртуальные методы, установку через конструктор и тп