Zugriff auf eine Struktur ausserhalb der Klasse



  • Moin moin

    Ein kleines Problem:

    Ich habe in einer Klasse eine Struktur definiert, enthält 3D Punkte, und möchte diese Punkte auch in einer anderen Klasse zur Verfügung gestellt bekommen. Ich möchte also von einer Klasse B auf eine Struktur welche in Klasse A definiert ist zugreifen.

    Kann mir jemand bei dieser Sache weiterhelfen?

    Danke

    tschö



  • Nimm eine GetMethode die eine konstante Referenz zurückliefert



  • sorry- ich steck noch nicht so tief in der Materie.

    Wie meinst du das mit GetMethode, und der Referenz?
    Die Referenz wird dann aus Klasse A zurückgeliefert, oder?



  • hallo,

    habe zwar schon einige zeit nicht mehr c++ programmiert, aber nach meiner erfahrung mit OOP würde ich dir vorschlagen, du schreibst eine get()- und eine set-methode in deiner klasse a.
    jedesmal wenn du auf die struktur zugreifen willst rufst du dann einfach die entsprechende methode auf.

    eine andere, aber unfeine, möglichkeit wäre, du deklarierst die struktur in klasse a als public, dann kannst du von überall darauf zugreifen.

    last but least gibt es auch noch eine möglichkeit mit freund(friend)-klassen, damit kenne ich mich aber nicht mehr so gut aus...

    hoffe etwas geholfen zu haben,

    sternenstaub

    PS: da habe ich mir wohl etwas viel zeit beim posten gelassen



  • Also schreibe ich in meiner Klasse A eine Memberfunktion vom Typ der Struktur (wegen den Rückgabewert). In dieser Funktion schreibe ich meine Werte in eine Variable.
    Aus der Klasse B rufe ich dann über get(Variable der Memberfunktion) den Wert ab, ist das richtig?
    Kommt vor get() noch irgendetwas?
    Muss ich um get() verwenden zu können, noch irgendeinen Header einbinden?



  • roeschti schrieb:

    Also schreibe ich in meiner Klasse A eine Memberfunktion vom Typ der Struktur (wegen den Rückgabewert). In dieser Funktion schreibe ich meine Werte in eine Variable.

    in der klasse a musst du eine get_methode() schreiben welche das struct als rückgabewert hat. z.B. so:

    struct_typ get_attribut()
    {
        return variablenname_des_structs;
    }
    

    roeschti schrieb:

    Aus der Klasse B rufe ich dann über get(Variable der Memberfunktion) den Wert ab, ist das richtig?
    Kommt vor get() noch irgendetwas?
    Muss ich um get() verwenden zu können, noch irgendeinen Header einbinden?

    in der klasse B musst du erst noch die set_methode schreiben:

    void set_attribut(string var1, string var2)  // die parametertypen haengen natürlich von deinem struct ab
    {
        attributsname.struct_attribut_1 = var1;
        attributsname.struct_attribut_2 = var2;
    }
    


  • Kann der struct_typ auch ein Vektor sein?

    Ich möchte ja nicht nur einen Wert sondern gleich um die 1500 Werte übergeben, weil in der Klasse B die Ausgabe der in Klasse A errechneten Werte erfolgt.

    tschö



  • roeschti schrieb:

    Kann der struct_typ auch ein Vektor sein?

    Ich möchte ja nicht nur einen Wert sondern gleich um die 1500 Werte übergeben, weil in der Klasse B die Ausgabe der in Klasse A errechneten Werte erfolgt.

    tschö

    das sollte auch gehen, aber warum machst du nicht innerhalb von klasse a die ausgabemethoden?



  • In diesem Dialogfenster ist kein Platz für eine neue Ausgabe. Oder kann ich mit einer Klasse 2 Dialogfenster bearbeiten?



  • das kann ich dir nicht sagen, habe bisher mit c++ nur konsolenanwendungen geschrieben...



  • wow, das war bis jetzt die absolut schnellste antwort die ich je bekommen habe 😉

    Ok, werd es dann erstmal nach deinen Vorschlag probieren

    Danke



  • Eine frage noch, was meinst du mit:

    attributsname.struct_attribut_1
    

    ?
    Ich weiss nicht wie ich das in mein Programm reindeuten soll.

    cu



  • mit attributsname meinte ich die struktur die ja ein attribut deiner klasse sein soll.
    .struct_attribut_1 soll das erste attribut deines structs sein.



  • ok, danke

    tschö mit ö


Anmelden zum Antworten