просто представь что у тебя нету понятия индекс переменной, компилятор переменную которая у тебя написана второй может сделать первой или третей
программируй так чтобы тебе индекс переменной был не нужен
|
а где интересно было понятие индекс переменной?) конечно его нигде нет, я пишу:
мы сами суём в него указатели на филды при создании объекта в конструкторе класса.
|
т.е. в нужной последовательности.
ща объясню зачем всё надо)
у меня есть свой формат файла (левел). раньше он состоял из готовых блоков с четко заданой последовательностю и структурой. но потом я стал запариваться, когда нужно было ввести какой то новый параметр в один из видов объектов, или вообще новый вид объекта. старый загрузчик сбивался и грузил черти что, надо было аккуратно менять сначала только сохранение, потом пересохранять все имеющиеся карты, затем менять лоад и тогда только радоваться).
я решил сделать формат файла как бы параметр-driven. аналогичное наблюдается в формате FBX. структура такова:
объект
{
номер значения
значение
}
"номер значения-значение" конечно может быть много, до 255.
их структура выглядит так:
B номер значения
B тип данных
сами данные
(B - байт, тип данных от 1 до 5, соотв от байта до стринга).
а заголовок "объекта" представляет собой:
B тип объекта (номер класса, тут проверяем просто ифом, их немного)
L кол-во впереди идущих параметров со значениями
и в общем вот. я согласен конечно вручную указывать какой ячейке массива какое значение в объекте класса принадлежит, другое дело что я банально запутался во всей этой хитрости с кучей указателей на указатели и полиморфизмом)
вышеуказанный стиль формата файла имхо может весьма сократить расход нервов и сделать вполне совместимыми файлы разных версий (не хватает инфы? игнорим!)