pointer auf vector von pointern auf objekte



  • hi,
    ich habe ein kleines problem mit der übergabe von pointern.
    hier ein beispielcode:

    vector<Particle*> vparticles;
    function(&vparticles);
    

    indem vector vparticles werden die pointer auf objekte gespeichert. und ich will dessen adresse an eine funktion übergeben. so weit so gut, das klappt auch.
    hier der funktionsaufruf:

    void function (vector <Particles*>* pvparticles){...}
    

    das funktioniert irgendwie nicht und ich weiß nicht, wo der fehler lioegen kann.
    ich bekomme als fehlermeldung, dass >>Particle<< nicht in diesem gültigbereich definiert ist und außerdem, dass das templateargument ungültig ist (was denke ich aus dem ersten fehler folgt)
    vielleicht sollte ich noch dazu sagen, dass in dem vektor nicht nur adressen von objekten gespeichert werden, sondern, objekte der klasse A, aber auch der klasse B, die public von A geerbt haben. (also class B : public A ...)

    ich würde mich sehr freuen, wenn ihr imr weiterhelfen könnt!

    edit: das problem scheint behoben zu sein, aber es kommen leider noch andere fehlermeldungen. kann man eigentlich in einem vector so wie ich es mache, adressen von objekten speichern, die entweder der basisklasse oder einer klasse angehören, die von der basisklasse public erben?



  • Ulf schrieb:

    vector<Particle*> vparticles;
    function(&vparticles);
    

    Das C++-Forum ist nebenan.

    hier der funktionsaufruf:

    void function (vector <Particles*>* pvparticles){...}
    

    das funktioniert irgendwie nicht und ich weiß nicht, wo der fehler lioegen kann.
    ich bekomme als fehlermeldung, dass >>Particles<< nicht in diesem gültigbereich definiert ist und außerdem, dass das templateargument ungültig ist (was denke ich aus dem ersten fehler folgt)

    Tippfehler? Oben steht noch was von Particle (ohne s). Ansonsten würde ich der Fehlermeldung glauben und deine Sichtbarkeitsbereiche prüfen.



  • ja, leiler war es ein tippfehler im code ^^
    tut mir leid, aber hab bestimmt ne stund egesucht und kontne nichts dergleichen finden.
    aber das problem ist trotzdem noch nicht gelöst, weil ich wie gesagt noch die o.g. frage hab, obn das überhauot so geht, wie ich mir denke..

    danke aber schonmal für die antwort!



  • Hallo,

    kann man eigentlich in einem vector so wie ich es mache, adressen von objekten speichern, die entweder der basisklasse oder einer klasse angehören, die von der basisklasse public erben?

    ja, kann man. Aber wie bereits gesagt, std::vector ist eigentlich C++.

    Mfg

    GPC



  • Dieser Thread wurde von Moderator/in c.rackwitz aus dem Forum ANSI C in das Forum C++ verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.


Anmelden zum Antworten