Показать сообщение отдельно
Старый 28.06.2009, 03:21   #12
Mr_F_
Терабайт исходников
 
Аватар для Mr_F_
 
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений
(для 6,051 пользователей)
Ответ: Хитрая хитрость

просто представь что у тебя нету понятия индекс переменной, компилятор переменную которая у тебя написана второй может сделать первой или третей
программируй так чтобы тебе индекс переменной был не нужен
а где интересно было понятие индекс переменной?) конечно его нигде нет, я пишу:
мы сами суём в него указатели на филды при создании объекта в конструкторе класса.
т.е. в нужной последовательности.

ща объясню зачем всё надо)

у меня есть свой формат файла (левел). раньше он состоял из готовых блоков с четко заданой последовательностю и структурой. но потом я стал запариваться, когда нужно было ввести какой то новый параметр в один из видов объектов, или вообще новый вид объекта. старый загрузчик сбивался и грузил черти что, надо было аккуратно менять сначала только сохранение, потом пересохранять все имеющиеся карты, затем менять лоад и тогда только радоваться).
я решил сделать формат файла как бы параметр-driven. аналогичное наблюдается в формате FBX. структура такова:

объект
{
номер значения
значение
}

"номер значения-значение" конечно может быть много, до 255.
их структура выглядит так:

B номер значения
B тип данных
сами данные

(B - байт, тип данных от 1 до 5, соотв от байта до стринга).

а заголовок "объекта" представляет собой:

B тип объекта (номер класса, тут проверяем просто ифом, их немного)
L кол-во впереди идущих параметров со значениями

и в общем вот. я согласен конечно вручную указывать какой ячейке массива какое значение в объекте класса принадлежит, другое дело что я банально запутался во всей этой хитрости с кучей указателей на указатели и полиморфизмом)

вышеуказанный стиль формата файла имхо может весьма сократить расход нервов и сделать вполне совместимыми файлы разных версий (не хватает инфы? игнорим!)
__________________
бложик | geom.io | твиттер | faded | демо 1 2 | роботы | лайтмаппер
(Offline)
 
Ответить с цитированием