Verweis von Variablen in der Headerdatei?



  • Hallo,

    ich suche schon seit längerem nach einer Lösung, bin bis jetzt noch nicht fündig geworden.
    Folgendes Problem:

    [code]class a{
    public:
    a(){};
    ~a(){};
    string zahl1;
    string zahl2;
    void setZahl1(string i){this->zahl1 = i;}
    void getZahl1(void){return zahl1;}
    void setZahl2(string j){this->zahl2 = j;}
    void getZahl2(void){return zahl2;}
    void fuellZahlen(void);
    }
    
    void a::fuellZahlen(){
    this->setZahl1("eins");
    this->setZahl2("zwei");
    b test2;
    test2.print();
    }
    
    class b{
    public:
    b(){};
    ~b(){};
    void print(void);
    }
    
    void b::print(){
    // wie kann ich auf die Variablen zahl1 und zahl2 der class a zugreifen?
    }
    
    int main(int, char *[]){
    a test1;
    test1.fuellZahlen();
    return 0;
    }[/code]
    

    Wie schon im Quellcode an der entsprechenden Stelle gefragt: Wie kann ich in der Class B auf die Werte der Variablen der Klasse a zugreifen? Muss ich dafür per Zeiger in der Headerdatei der Klasse b den entsprechenden Verweis machen? Aber wie?

    Kann mir jemand helfen?

    Vielen Dank,

    newbie82


  • Mod

    Die Frage kann man nur beantworten, wenn du diese Frage beantwortest: Von welchem a? Und dann hast du deine Eingangsfrage aber auch schon selber beantwortet.

    Merke: Eine Klasse ist kein Namespace.

    edit: Endlich vor cooky! 🕶



  • Die Klasse a hat doch überhaupt gar keine Eigenschaften. Die müssten nämlich statisch sein. Nur Objekte der Klasse a haben nichtstatische Eigenschaften. Und damit beantwortet die Frage sich auch von selbst: Entweder die print Funktion bekommt ein a Objekt, oder der Konstruktor und der Speicher gleich die Adresse. Jedenfalls brauchst du ein a Objekt. Sinn scheint mir das Ganze aber nicht zu machen, hast du Objektorientierung überhaupt verstanden? Wenn du ein bisschen Hintergrund zu den Klassen preis gibst, erklärt dir bestimmt jemand wie man das besser machen könnte.

    Edit: Verdammte! ARGH!! Man, lief doch so gut heute. Jetzt hab ich mich von SeppJ schlagen lassen. 4 Sekunden!



  • Edit: zu spät, denn die Pros waren mir zuvor
    @cooky: welcher bot? Kann ich den auch haben?



  • Wenn z.B. in der Klasse a ein timer gestartet wird und eine ID angelegt wird, wie kann ich den timer und die ID in der Klasse b abfragen?



  • newbie82 schrieb:

    Wenn z.B. in der Klasse a ein timer gestartet wird und eine ID angelegt wird, wie kann ich den timer und die ID in der Klasse b abfragen?

    Du musst der Instanz der Klasse b irgendwie die konkrete Instanz der Klasse a bekannt machen. In der Regel erfolgt das über Parameter in Methoden (z.B über Konstruktorparameter). Eine Person b hat ja auch nicht automatisch auf die Brieftasche einer Person a Zugriff...


  • Mod

    newbie82 schrieb:

    Wenn z.B. in der Klasse a ein timer gestartet wird und eine ID angelegt wird, wie kann ich den timer und die ID in der Klasse b abfragen?

    Die Frage kann man nur beantworten, wenn du diese Frage beantwortest: Von welchem a? Und dann hast du deine Eingangsfrage aber auch schon selber beantwortet.

    Merke: Eine Klasse ist kein Namespace.



  • Könnt ihr mir ein Beispiel dazu nennen.

    Vielen Dank,

    newbie82

    PS. Sorry, aber ich befinde mich noch im Lernprozess.


  • Mod

    Eine Klasse ist die Idee von etwas. Die Lexikondefinition. Wenn ich im Lexikon über "Brot" lese, dann kenne ich zwar alle seine Eigenschaften, aber ich brauche eine Umsetzung des Konzepts, also ein richtiges echtes Brot, damit ich es auch essen kann.

    Bitte lies einmal den zweiten Link in meiner Signatur, da findest du Hinweise zu guter Literatur. Dir fehlen einfach sämtliche Grundlagen, wir können dir hier nicht all den Basiskram erklären, das sind nicht umsonst dicke Bücher.

    P.S.: Mag natürlich sein, dass dir gleich doch noch jemand mit konkretem Code hilft, aber ich wäre mir nicht so sicher, ob das gut für dich wäre, wenn du es dann nur nachmachst, aber nicht verstanden hast.



  • SeppJ schrieb:

    P.S.: Mag natürlich sein, dass dir gleich doch noch jemand mit konkretem Code hilft, aber ich wäre mir nicht so sicher, ob das gut für dich wäre, wenn du es dann nur nachmachst, aber nicht verstanden hast.

    Ich bin gut in letzter Zeit, ich beherrsche mich.


Anmelden zum Antworten