LINUX.ORG.RU

Хочу здоровый такой factory

 , ,


0

2

Судьба занесла писать на C++, а делаю я это редко, поэтому хорошая мысля не приходит...

есть 100-200 C++ классов с конструкторами с разными параметрами. есть XML с списком классов и параметров вызова конструкторов. нужно изобразить массив иэ объектов, указанных в XML (с соответствующими параметрами..

class BaseClass {
...
};

class Obj1: public BaseClass {
...
    Obj1(float a, float b);
};

class Obj2: public BaseClass {
...
    Obj2(char *t1);
};

class NodeList {
...
    static std::vector<BaseClass *> objs; 
};

Вот этот вот ctors надо заполнить с помошью XML

<nodes>
<node type="Obj1">
<param name="a" value="1.66"/>
<param name="b" value="2.1"/>
</node>
<node type="Obj2">
<param name="t1" value="test"/>
</node>
</nodes>

Отложив в сторону детали парсинга и прочего - какая архитектура должна быть чтобы при сотнях-тысячах объектов без труда добавлять ещё?

★★★★★

Ничего не понятно. Вам нужно заполнить вектор объектами на основе XML?

static std::vector

Зачем тут static?

char *t1

Зачем сишка? Есть std::string.

BaseClass *

Сырые указатели - зло.

RazrFalcon ★★★★★
()
Ответ на: комментарий от RazrFalcon

Это ad-hoc пример, детали не важны.

Есть сотня классов, есть XML, надо по нему заполнять Nodelist::objs. Хочется найти оптимальный подход к задаче.

Да, в objs - инстансы объектов.

slapin ★★★★★
() автор топика
Последнее исправление: slapin (всего исправлений: 2)
Ответ на: комментарий от RazrFalcon

static нужен чтоб один экземпляр был. Сишка местами потому что embedded и сишка. Сырые указатели тут пофиг, так как оно один раз построится, потом живёт вечно.

slapin ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.