Большой Воронежский Форум
» Программирование>йа задачкО
xxx-men 11:46 14.04.2008
чота не пойму с какой стороны подойти....
есть:

Сообщение от :
class c0 { virtual void f(){....};};

так же есть:

Сообщение от :
class c1: c0 {...};
class c2: c0 {...};
class c3: c0 {...};
...
..
...
class c99: c0 {...};
class c100: c0 {...};

пока что в ручную, создаюца обьекты данных классов
например:
4 объекта класса с2
7 объектов класса с28
1 объект класса с5
они между собой взаимосвязаны, удалить один и создать такой же(типо изменить объекту адрес) нельзя

теперь вопрос:
что бы их не создавать в основной программе, есть такие мысли:
0):
забить на эти мысли, и делать их там же и так же

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

2):
загрузить (заранее созданную с помощью бубна и медитаций ) эту пачку обьектов с винта, напрямую в память
(тут непонятно куда будут смотреть указатели)
3):
ваш вариант решения


зы: извеняюсь если что то непонятно обьяснил...
[Ответ]
The_God 13:03 14.04.2008
а что за задачу ты решать пытаешся таким способом ?

ты не думал что то решение котороей ты выбрал немного противоестественное для вминяемого человека ?

еслибы стамотолог предложил зубы лечить через задницу ябы усомнился в его адекватности. [Ответ]
xxx-men 14:16 14.04.2008
The_God, я прям даже не пойму что тебе ответить, ну попробую:

#ifdef ты_не_так_понял_условие
есть условие: пачка обьектов , которые как то между собой взаимодействуют
есть вопрос: как хранить\грузить эти обьекты (даже есть варианты ответа)

Сообщение от The_God:
ты не думал что то решение котороей ты выбрал немного противоестественное для вминяемого человека ?

я пока ничего не выбрал, есть вариант №3

#endif

#ifdef ты_не_понял_зачем_эта_пачка_классов

Сообщение от The_God:
а что за задачу ты решать пытаешся таким способом ?
ты не думал что то решение котороей ты выбрал немного противоестественное для вминяемого человека ?

а как ты можешь так утверждать, не зная что я делаю? МегаГуруТелепат?
#endif

жалко форум синтаксис не подсветит, но думаю ты разберешся
[Ответ]
Part!zan 19:17 14.04.2008

Сообщение от xxx-men:
а как ты можешь так утверждать, не зная что я делаю? МегаГуруТелепат?

Это видно невооруженным глазом. Алгоритм невменяемый. [Ответ]
xxx-men 19:18 14.04.2008

Сообщение от Part!zan:
Это видно невооруженным глазом. Алгоритм невменяемый.

ладно, а можно коментарии....? [Ответ]
Part!zan 20:16 14.04.2008
xxx-men, какие комментарии, если задача неизвестна? Для чего нужна пачка объектов, для чего их хранить/грузить? [Ответ]
The_God 21:07 14.04.2008

Сообщение от xxx-men:
йа задачкО

это не задачка

это решение задачки, причем ооочень странное

ты раскажи условие задачки, наверняка можно решить её более естественным образом.

ps конечно если задачка именно как разрулить именно такую гарадульку классов, то в чем её цель ? зачем она ? [Ответ]
xxx-men 21:13 14.04.2008

Сообщение от Part!zan:
какие комментарии, если задача неизвестна?

неправда, первые каменты были:

Сообщение от The_God:
ты выбрал немного противоестественное для вминяемого человека

Сообщение от Part!zan:
Алгоритм невменяемый.

то есть для любой возможной задачи, использовать пачку обьектов == невменяемость?

ну обьясните(реально интересно), откуда такие выводы?
[Ответ]
xxx-men 21:20 14.04.2008

Сообщение от The_God:
ps конечно если задачка именно как разрулить именно такую гарадульку классов

вооооот именно в этом и состоит мой вопрос(подробности пост№1), который пока нераскрыт

Сообщение от The_God:
то в чем её цель ? зачем она ?

мне делать нех , сижу загоняюсь

зы:
это кусок мозга для Л2 бота, даже не обезательно для Л2
[Ответ]
Part!zan 22:27 14.04.2008
xxx-men, короче, телепатов тут нет. Либо ты нормально пишешь, чего ты хочешь, либо ищешь решение сам. Не верю, что есть реальная задача, которая требует такого решения. [Ответ]
The_God 23:44 14.04.2008

Сообщение от xxx-men:
сижу загоняюсь

ну чтож, как разрулиш, напиши

весеннее обострение даже у программистов оказывается бывает
[Ответ]
xxx-men 00:14 15.04.2008

Сообщение от Part!zan:
короче, телепатов тут нет. Либо ты нормально пишешь, чего ты хочешь

хочу узнать:

Сообщение от The_God:
как разрулить именно такую гарадульку классов

помоему все просто и наглядно..... что не так? [Ответ]
xxx-men 00:16 15.04.2008

Сообщение от The_God:
ну чтож, как разрулиш, напиши

оК скорее всего способ №1 [Ответ]
xxx-men 01:04 15.04.2008

Сообщение от Part!zan:
Не верю, что есть реальная задача, которая требует такого решения.

ну "требует" не совсем то слово.....
допустим мы скриптуем Л2 бота...

как это может работать:

Сообщение от :
class script
{
_script* pNext;
_virtual void run();
};
class bot
{
....
_script* pScr;
_void move();
};

void bot::move()
{
script* tmp = pScr;
while(tmp)
{
_tmp->run();
_tmp=tmp->pNext;
};
};

потом создаю дофига(сам пока не знаю сколько) разных классов, с разными возможностями которые
наследуюца от script, например:

Сообщение от :
class IF: public script
{
_ bool* target;
_ script* trueScr;
_ script* falseScr;
_ void run()
_ {
__ if(*target){ pNext=trueScr;} else {pNext=falseScr;};
_ }
};

ну и т.д., идея надеюсь понятна...
потом делаеца "городулька обьектов"
потом это запускаеца на выполнение, и... , о чудо, работает...

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

было еще два варианта, тока жестокие

зы:
lua не предлагать, я велосипед изобретаю.
вопрос не раскрыт.
[Ответ]
MadFish 12:05 15.04.2008
Мое ИМХО!!!

Я бы (как оч ленивый человек) нарулил в с0 пуре виртуал сериализацию.Реализовывал бы ее в потомках(если надо). Хранить ну это где больше нравится хош бд, хош фаийле. Восстанавливать состояние либо конструктором либо спец функцией (в зависимости че надо). Взаимосвязи хранить либо по ИД объектов либо мутить что-нить вроде конечного автомата по созданию объектов с описанием взаимосвязей...

Ну или забить на все и юзать boost::serialization [Ответ]
xxx-men 13:27 15.04.2008

Сообщение от MadFish:
Ну или забить на все и юзать boost::serialization

это что за зверь? [Ответ]
MadFish 15:13 15.04.2008
http://www.rrsd.com/boost/index.htm [Ответ]
xxx-men 16:47 15.04.2008

Сообщение от MadFish:
http://www.rrsd.com/boost/index.htm

пендосский...

Сообщение от MadFish:
Я бы (как оч ленивый человек) нарулил в с0 пуре виртуал сериализацию

можешь "на пальцах" обьяснить что это?

MadFish, можно даже пару слов по поводу "адекватности" выбранного мной алгоритма
[Ответ]
MadFish 09:11 17.04.2008
Не..., по поводу адекватности алгоритма и постановки задачи эт ты уж сам думай (я ведь даже не знаю что такое Л2 бот), мое дело отвечать на вопросы.
По русски например:
http://www.rsdn.ru/article/xml/xmlcpp.xml
(это так скать азы )
"на пальцах" данные переводим в последовательный формат (текст, хтмл.. итп на твой вкус) далее ,например, сохраняем во внешней памяти. Проблема восстановления ссылок может решатся различными методами. Как то: связка по уникальным ИД объектов, привязка к уже существующим объектам(нужен автомат с описанием последовательности создания объектов)...итп
МОЙ ВЫБОР
сериализация объектов функциями(можно юзать внешнии либы).
создать хранилище объектов типа c0 которое и содержит взаимосвязи между объектами и !!!само умеет сериализоваться!!! [Ответ]
xxx-men 10:18 17.04.2008

Сообщение от MadFish:
создать хранилище объектов типа c0 которое и содержит взаимосвязи между объектами и !!!само умеет сериализоваться!!!

непрокатит.... ....если только на линейные участки....

вывод: указатели тока по ID.... т.к. указатели в классах смотрят на что угодно....

Сообщение от MadFish:
http://www.rsdn.ru/article/xml/xmlcpp.xml

а ссылочка очень даже по теме [Ответ]
Вверх