Vector übergeben klappt nicht
-
Hi,
ich stehe gerade vor einem großen Rätsel, weil ich mir nicht erklären kann, warum das nicht klappt. Ich will in der main-Funktion einen vector (der dort erstellt wurde) an eine Methode eines Objekts übergeben, sieht dann so aus:
std::vector<Plattform> Plattformen; //Plattform ist eine Klasse, vector wird danach gefüllt, ist also nicht leer Mario.Kollision(Plattformen); //Mario ist vom Typ Spieler und hat die Methode Kollision (siehe unten)Methode Kollision in der Klasse Spieler:
void Kollision(std::vector<Plattform> &ObjList) { //spätere Methode, jetzt noch nicht vorhanden }Durch das "&" sollte ja eigentlich eine Referenz auf den Vector Plattformen erstellen.
VS C++ unterringelt mir aber den Parameter Plattformen in der main-Funktion und schreibt dazu:
"Ein Verweis vom Typ ""std::vector<Plattform, std::allocator<Plattform>> &"" (nicht konstantenqualifiziert) kann nicht mit einem Wert vom Typ "std::vector<Plattform, std::allocator<Plattform>>"" initialisiert werden."
Werde daraus nicht schlau, warum das nicht funktioniert. Kann mir das jemand erklären und am besten noch zeigen, wie ich es hin bekomme, den vector zu übergeben.
Grüße,
David
-
const std::vector<Plattform> &ObjList als Parameter.
Außerdem ist es besser, den Compiler oder IDE auf englisch zu stellen, sonst wirst du zu nicht trivialen Problemen nichts finden wenn du deutsche Compilerfehler in google eintippst.
-
Danke, allerdings sagt er jetzt, dass keine passende benutzerdefinierte Konvertierung von ""std::vector<Plattform, std::allocator<Plattform>>"" in ""const std::vector<Plattform, std::allocator<Plattform>>"" vorhanden ist.
-
Seh da keinen Fehler weder im ersten noch im zweiten Post. Kann dir nicht sagen woran das liegt

-
-
out schrieb:
Außerdem ist es besser, den Compiler oder IDE auf englisch zu stellen, sonst wirst du zu nicht trivialen Problemen nichts finden wenn du deutsche Compilerfehler in google eintippst.
Mit dem MSVC finde ich das genau nicht, ich finde da deutsch angenehmer. Und wenn ich was googlen muss, dann suche ich erstmal nach dem Fehlercode CXXXX oder LNKXXX, da findet man einiges.