Parameterübergabe an andere Funktion



  • Hallo zusammen,
    vor zwei Wochen hat mein neues Semester angefangen und nun sollen wir direkt was in C++ programmieren. Jetzt verzweifele ich schon an kleinen Dingen und benötige dringend Hilfe.
    Ich bekomme es einfach nicht hin, die eingegebenen Parameter aus der readObject in die writeObject zu übertragen. Ich glaube das wird irgendwie mit Call by Reference gemacht, leider bin ich da noch immer nicht hinter gestiegen.
    Vielen Dank schon mal im Voraus!

    Object.h
    #ifndef OBJECT_H
    #define OBJECT_H
    
    class Object
    {
    public:
        Object(double xPos, double yPos);
        Object();
    
        double xPos() const;
        void setXPos(double xPos);
    
        double yPos() const;
        void setYPos(double yPos);
    
        void writeObject();
        static readObject();
    
    protected:
        double m_xPos;
        double m_yPos;
    };
    
    #endif // OBJECT_H
    
    object.cpp
    #include <iostream>
    #include "object.h"
    #include <string>
    
    using namespace std;
    
    Object::Object(double xPos, double yPos)
    {
        m_xPos = xPos;
        m_yPos = yPos;
    
    }
    
    Object::Object()
    {
    
    }
    
    double Object::xPos() const
    {
        return m_xPos;
    }
    
    void Object::setXPos(double xPos)
    {
        m_xPos = xPos;
    }
    
    double Object::yPos() const
    {
        return m_yPos;
    }
    
    void Object::setYPos(double yPos)
    {
        m_yPos = yPos;
    }
    
    void Object::writeObject()
    {
        cout << "Position X: " << xPos() << endl;
        cout << "Position Y: " << xPos() << endl;
    }
    
    Object::readObject()
    {
        double xPos, yPos;
    
        cout << "Bitte gib X Koordinate ein" << endl;
        cin >> xPos;
        cout << "Bitte gib Y Koordinate ein" << endl;
        cin >> yPos;
    
    }
    
    main.cpp
    #include <iostream>
    #include "object.h"
    
    using namespace std;
    
    int main()
    {
        Object *o = new Object;
        o->readObject();
        o->writeObject();
    }
    

    Liebe Grüße

    P.S.: sollte die Frage hier im Forum schon aufgetaucht sein, dann tut es mir sehr leid, dass ich diese erneut gestellt habe



  • Und was ist jetzt die Aufgabe? Sollt ihr den code vervollständigen? Ist das bereits selbst erstellt?
    Schon mal 2 Hinweise auf den ersten Blick: in writeObject ist 2 mal xPos drin.
    und in readObject kein setX/YPos



  • Die Aufgabe ist eigentlich eine größere. Da ich aber leider noch die Grundlagen lernen muss, ist das gerade eine Teilaufgabe von mir selber.
    Auf der Suche nach einer Lösung, wie man einen eingegebenen Parameter an eine andere Funktion übergibt, bin ich auf den Codeschnippsel unten gestoßen und habe diesen nach meinen Bedürfnissen angepasst und vieles ausprobiert. Leider habe ich bisher noch immer keine Lösung gefunden, wie man den eingegebenen Wert in xPos über die writeObject() Funktion ausgeben kann.

    Kannst du mir deine 2 Hinweise etwas genauer erklären?
    Ich weiss nicht, was du mir damit sagen möchtest, dass in der writeObject 2 mal xPos drin ist.
    Und was ist mit der setx/yPos?

    Jetzt schon mal ein dickes Danke schön an dich!



  • In der readObject liest du deine Werte ein, das ist richtig. Du hast aber vergessen, die Membervariablen daraufhin zu setzen. D.h. du musst nach der Eingabe noch die beiden set-Funktionen aufrufen. Sobald sie gesetzt sind, kann writeObject sie einfach ausgeben.


Log in to reply