Veröffentlicht 10. Januar 200322 j Seit gegrüßt. Mal eine Anfängerfrage: In einer Klasse weise ich einer Variable einen Wert zu. Diesen Wert brauche ich in einer anderen Klasse. Wie bekomme ich den rüber? Klasse1: Zahl1=34; Klasse2: include Klasse1; Klasse1 k1; Zahl2=k1.Zahl1; Das ist mein vergeblicher Versuch, da in Klasse2 Zahl1=-464675. (MFC, Dialog)
10. Januar 200322 j Du musst zwischen Klasse und Instanz unterscheiden. Die Instanz von Klasse1, die du in Klasse2 erzeugst, ist eine andere, als die, deren Variable den Wert enthält, an den du rankommen willst. Du musst eine Möglichkeit schaffen, der Instanz von Klasse2 die richtige Instanz von Klasse1 bekannt zu machen. Das macht man üblicherweise über Referenzen oder Zeiger. Man kann es auch über globale Variablen lösen, aber das ist nicht besonders schön und untergräbt das ganze Klassenkonzept. Erzeugt zufällig eine Instanz der einen eine Instanz der anderen Klasse? Dann ist das nämlich ganz einfach. P.S.: Verschon nach C und C++, weil das ein allgemeines (und ziemlich häufig auftretendes) Problem ist.
10. Januar 200322 j Hi, wenn du die Zahl in der Klasse 1 public deklariert hast, dann kannst du ja in der 2.Klasse die Zahl einfach zuweisen. Wenn du sie als private deklariert hast mußt du in der 1.Klasse noch eine Funktion public deklarieren die die Zahl zurückliefert. Eine andere Möglichkeit wäre die 2.Klasse von der ersten abzuleiten. Das sähe dann so aus: class Klasse2 : private Klasse1 { } Wenn ich mich unverständlich ausgedrückt habe, dann frag ruhig nochmal nach:) Gruß Guybrush
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.