[ 2paca.zwaka @ 01.06.2012. 18:28 ] @
Za obradu nekih podataka u programu, koristim strukturu podataka u vidu drveta (tree).
Sve bi to bilo divno kada bi deca drveta bila istog tipa.

Kod za sada izgleda ovako
Code:

class Object {
    map<string, Object> _children;
public:
    Object(){        
    }

    // Preklopljeni operator[], bla bla bla
    
    void addProperty(string name, Object value){
        _children.insert(pair<string,Object>(name, value));
    }
};


E sada problem je u tome sto deca nece uvek biti tipa Object, vec mogu biti i tipa std::vector i std::string.

Postoji li neki nacin da se ovo odradi, vodeci racuna o pristojnim performansama.......?


Hvala unapred

[ Nedeljko @ 01.06.2012. 20:49 ] @
Postoji.

Napravi apstraktnu klasu Item, pa iz nje izvedi klasu ObjectItem koja sadrži atribut tipa Object, StringItem koja sadrži atribut tipa string itd, pa onda napravi mapu čije su vrednosti tipa Item*.
[ 2paca.zwaka @ 01.06.2012. 22:40 ] @
Pa razmisaljo sam o tome, cak sam to posle i uradio, ali bih vise volio da to uradim na neki drugi nacin, ako postoji, nesto sa template-ima ili nesto drugo......hvala u svakom slucaju puno