Array mit Int und String Werten ausgeben
-
Hallo zusammen,
Ich würde gerne ein Array - gefüllt mit int und string - ausgeben.
Leider ergibt mein Ansatz einen Error.
Kann mir jemand helfen?int main () { Vehicle Vehicles [] = { {"VW","Polo", 2500, 100, 3}, {"Mercedes","C200", 4500, 200, 5}, {"BMW","3er", 3000, 230,5}, {"Ford", "Mustang", 2300, 450, 3}, {"Opel", "Astra", 1800, 110, 5}, {"Audi", "A6", 2000, 160, 5} }; sizeofVehicles = sizeof (Vehicles) / sizeof (Vehicles[0]); cout << "Länge des Arrays: " << sizeofVehicles; return 0;
Vehicle als Datentyp habe ich in einem vorherigen Projekt als Klasse deklariert.
-
Leider ergibt mein Ansatz einen Error.
Soll das dein „Ansatz“ sein?
Der Fehler lautet?
-
@manni66
Wieso ist es kein Ansatz? Was fehlt?
Der Fehler lautet:
" error: could not convert ' {"VW", "Polo", 2500, 100, 3}' from '<brace-enclosed initializer list>' to 'Vehicle'
-
Zeig mal die Definition von
Vehicle
.
-
class Vehicle { public: void setserialNumber (string serialNumberneu); //Setter für Vehicle5 string getserialNumber(); Vehicle(); //Konstruktor vehicle1 Vehicle(string manufacturer, string model, string serialNumber, int weight, int power, int numDoors); // Konstruktor Vehicle 2 VehicleNeu(); //Konstruktor Vehicle5 -> Übung 4 virtual ~Vehicle(); //Destruktor static int getcounter(); // Vehicle() {counter++;}; //~Vehicle() {counter--}; //static int wieviele() {return counter;}; Vehicle (const Vehicle& fahrzeug); void lesen_Vehicle(); void schreiben_Vehicle(); void schreiben_VehicleX(); void lesen_VehicleX(); private: string manufacturer; string model; string serialNumber; int weight; int power; int numDoors; static int counter; };
Sorry für diese Unübersichtlichkeit.. Das ist der Aufgabe geschuldet. Das Programmt baut seit mehrern Wochen aufeinander auf und für diese Woche stand in der Übung man solle in der Main alles löschen und mit dem Array neue Fahrzeuge einfügen.
Da die vorherigen Programme aber alle liefen habe ich nicht daran gedacht dass der Fehler auch in der Klasse liegen könnte.
-
Der Fehler liegt nicht in der Klasse, sondern in ihrer Verwendung. Du hast beim Initialisieren den dritten String, den Konstruktorparameter
serialNumber
, vergessen.Wobei
VehicleNeu();
aber schon Quatsch ist. Das sollte der Compiler nicht durchgehen lassen.
-
ahhh klar!! danke!
in der vorherigen aufgabe sollte den fahrzeugen ein zufälliger zahlencode als seriennummer zugefügt werden, deswegen hatte ich serialNumber entfernt..
-
-
@Bashar noch eine Frage.--
Wie kann ich alle Arrayeinträge mit einer Funktion write() beispielsweise ausgeben lassen?
-
@NoobHunter12 Du schreibst eine Funktion, um ein
Vehicle
auszugeben, und rufst diese dann für jedes Element des Arrays auf.
-
Vehicle Vehicles [6] = { {"VW","Polo", "-", 2500, 100, 3}, {"Mercedes","C200","-", 4500, 200, 5}, {"BMW","3er", "-",3000, 230,5}, {"Ford", "Mustang","-", 2300, 450, 3}, {"Opel", "Astra","-", 1800, 110, 5}, {"Audi", "A6","-", 2000, 160, 5} }; int i; for (i=0; i<6; i++) { cout << Vehicles[i]; };
Wenn ich es so versuche sagt er mir:
Error: no match for 'operator<<' (operand types are 'std::ostream {aka std::basic_ostream<char>}' and 'Vehicle'
-
@Bashar sagte in Array mit Int und String Werten ausgeben:
Du schreibst eine Funktion, um ein Vehicle auszugeben
Hast du das gemacht?
-
Weil du
@Bashar sagte in Array mit Int und String Werten ausgeben:
Du schreibst eine Funktion, um ein Vehicle auszugeben,
nicht gemacht hast. Die Betonung liegt auf ein
-
Vehicle Vehicles [6] = { {"VW","Polo", "-", 2500, 100, 3}, {"Mercedes","C200","-", 4500, 200, 5}, {"BMW","3er", "-",3000, 230,5}, {"Ford", "Mustang","-", 2300, 450, 3}, {"Opel", "Astra","-", 1800, 110, 5}, {"Audi", "A6","-", 2000, 160, 5} }; void write()
Ich Rufe die Funktion write() in der main auf
void write() { int i=1; cout << Vehicles[1]; };
Das ist meine Funktion
public: . . . void write();
Und habe die Funktion in die Klasse eingefügt..
Der Fehler bleibt der Gleiche
-
Wie oft soll ich noch schreiben, dass du erstmal eine Funktion schreiben sollst, die EIN Vehicle ausgibt? Ich fühl mich veräppelt und mach jetzt hier Feierabend. Viel Erfolg!
-
veräppelt?
wenn ich es besser wüsste würde ich hier nicht nach hilfe fragen.schönen feierabend
-
@NoobHunter12 Wie soll die Ausgabe denn deiner Meinung nach aussehen?
Alles in einer Zeile oder jeder Eintrag in einer neuen Zeile?
Sollen die Membernamen davor stehen?Das weiß der Compiler auch nicht, darum musst DU eine Funktion schreiben, die das gewünschte macht.
-
Laut Aufgabe hat die Ausgabe des Arrays wie folgt auszusehen:
VW - Polo - "zufällig generierte 6 stellige seriennummer" - Gewicht - Leistung - Türen ;
-
@NoobHunter12 sagte in Array mit Int und String Werten ausgeben:
Laut Aufgabe hat die Ausgabe des Arrays wie folgt auszusehen:
VW - Polo - "zufällig generierte 6 stellige seriennummer" - Gewicht - Leistung - Türen ;
Und wo hast du irgendwas geschrieben, das die Werte so ausgibt?
-
@manni66
Nirgends, verzweifel ja schon daran die Werte des Arrays irgendwie auszugeben daher habe ich nichtmal versucht sie entsprechend anzuordnen