[Gelöst] Objektliste einer Methode übergeben



  • Hey Leute,
    hab folgendes Problem.
    Ich habe 2 Klassen, in Klasse A ist eine Funkion der ich gerne einen Vector übergeben möchte.
    Der Vector hat den Typ der anderen Klasse.

    Also so in etwa:

    class A
    {
     public:
     void Funktion(//Hier soll der Vector übergeben werden)
     {
     }
    };
    
    class B
    {
     //
     //
     //
    };
    std::vector<B> Vector;
    
    A.Funktion(//?????);
    

    Ich weiß nun aber nicht wie ich der Methode in Klasse A weiß machen kann das der Vector vom Typ <B> ist.
    Hoffe ihr könnt mir helfen.
    gruß michi


  • Administrator

    Mit vorwärts deklaration und der korrekten Aufteilung in Header und Source.

    // A.hpp
    #include <vector>
    
    class B; // Forward declaration
    
    class A
    {
    public:
      void foo(std::vector<B> const& vec);
    };
    
    // B.hpp
    
    class B
    {
    };
    
    // A.cpp
    
    #include "B.hpp"
    
    void A::foo(std::vector<B> const& vec)
    {
    };
    
    // main.cpp
    
    #include "A.hpp"
    #include "B.hpp"
    
    int main()
    {
        std::vector<B> vec;
    
        A a;
        a.foo(vec);
    
        return 0;
    }
    

    (Headerguards nicht vergessen ;))

    Grüssli



  • ok hat geklappt, super. danke dir 🙂


Anmelden zum Antworten