ist ein Fehler in mein CPP Code?

1 Antwort

Vom Fragesteller als hilfreich ausgezeichnet

Nicht nur einer.

#include <iostream>
#include <string>

using namespace std;

class Auto {
private:
    string reifen;
    string farbe;
    int ps;
    int reifendicke;

public:
    void set(int setreifendicke, string setreifen, string setfarbe, int setps) {
        reifen = setreifen;
        farbe = setfarbe;
        ps = setps;
        reifendicke = setreifendicke;
    }

    int getps() {
        return ps;
    }
};

int main() {
    Auto motor;
    motor.set(2, "haha", "blau", 400);

    cout << "deine PS Zahl ist " << motor.getps() << endl;
    return 0;
}
BONEz851 
Fragesteller
 15.08.2023, 12:32

stimmt, #include <string> Danke. reifen = setreifen dachte ich auch, aber er hat es als Fehler gesehen was jetzt logisch ist da ich nicht #include >string> hatte

0
Kelec  15.08.2023, 12:57
@BONEz851

#include string sollte hier zwar stehen war aber nicht der Grund warum dein Programm nicht funktioniert hat.

Wenn er die Definition nicht findet kompiliert das Programm einfach nicht.

Der Grund warum es nicht funktioniert hat weil Zuweisungen von rechts nach links erfolgen.

ps = setps; weist ps den Wert zu den du in der Funktion übergibst.

setps= ps; weist hingegen dem Wert von ps setps zu. Da ps nirgendwo initialisiert wird, werden hier einfach nur irgendwelche Werte ausgegeben welche gerade zufällig im Ram stehen und kein definierter Wert.

Der Compiler wird dir vermutlich auch eine Warnung ausgeben (sofern sie nicht abgeschaltet ist), dass die Variable bei Verwendung nicht initialisiert ist.

0