Seuraavan tapainen koodi:
#include <vector> class isa { public: isa(); ~isa(); vector<poika> pojat; }; class poika { public: poika (); ~poika (); isa parent; };
Tämä ei luonnollisestikaan toimi, koska isän kohdalla ei ole vielä tietoa pojasta ja jos ne kääntää toisinpäin, niin pojan kohdalla ei ole tietoa isästä. Haluaisinkin kuitenkin, että isä voisi luodata vektorin pojistaan, ja silti poika tietäisi kuka isänsä on. Epäselvää... Osaisiko kukaan neuvoa?
Lisää
class poika;
ennen tuota isä-luokkaa.
Arvasinhan, että se olisi jotain noin yksinkertaista. Kiitos. Vielä kun saisi #includettua <vectorin>, <mapin>, <iostreamin>, <fstreamin> ja <stringin> oikeassa järjestyksessä.
Edit: onnistuin sitten siinäkin. <iostream> ja <fstream> ensin ja sitten STLlät.
Onko noilla kirjastojen sisällyttämisjärjestyksellä joku merkityskin? Siis onko sillä väliä että missä järjestyksessä nuo #includetaa?
Ainakin itselläni se alkaa valittamaan erinäisistä makroista (erase, clear) jos STL-headerit #includeaa ennen fstreamia ja iostreamia. Kääntäjänä MinGW (Dev-C++).
VC++:lla ei ollut ongelmia...
Aihe on jo aika vanha, joten et voi enää vastata siihen.