Narf! Geschrieben 10. Januar 2003 Geschrieben 10. Januar 2003 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) Zitieren
Klotzkopp Geschrieben 10. Januar 2003 Geschrieben 10. Januar 2003 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. Zitieren
Guybrush Threepwood Geschrieben 10. Januar 2003 Geschrieben 10. Januar 2003 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 Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.