Autor Beitrag
HCN
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 22

Xp Prof Sp2, Vista ultimate Sp1
C#, C++, VS 2008 Prof, MeVisLab
BeitragVerfasst: Sa 14.06.08 15:20 
Hallo,

ich wollte mir eine Klasse schreiben die Methoden bereit stellt um mit Brüchen umzugehen.
Es funktioniert soweit auch alles, nur wenn ich mehrere Instanzen dieser Klasse erzeuge, dann überschreibt die letzte das int Array von der anderen. Ich dachte eigentlich das jede Instanz ihre eigenen Variablen hat. Was mache ich falsch ?

Hier mal die relevanten Ausschnitte:

Die Klasse:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
class Bruch
    {
        static private int[] bruch;

        public Bruch()
        {
            bruch = new int[2];
        }

        public Bruch(int zaehler, int nenner)
        {
            bruch = new int[2];
            bruch[0] = zaehler;
            bruch[1] = nenner;
        }
}



Und dann mit
ausblenden C#-Quelltext
1:
2:
3:
4:
 
Bruch Bruch1 = new Bruch(23);
Bruch Bruch2 = new Bruch(12);
Bruch Bruch3 = new Bruch(38);


Warum hat nicht jedes Bruch Objekt seine eigene Version von int[] bruch ??? Irgendwie haben die am Ende alle die gleichen Werte (3 und 8), aber warum nur ?

Vielen Dank

MfG HCN
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Sa 14.06.08 15:22 
Du hast deklariert:
ausblenden C#-Quelltext
1:
static private int[] bruch;					

Statische Felder sind Felder, die für die gesamte Klasse gelten. lass das static weg, dann hat jede Instanz ihr eigenes.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
HCN Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 22

Xp Prof Sp2, Vista ultimate Sp1
C#, C++, VS 2008 Prof, MeVisLab
BeitragVerfasst: Sa 14.06.08 15:36 
Achso.... Na dann. Anfängerfehler :-) Dankeschön !!!
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Sa 14.06.08 16:30 
Kleine Anmerkung: Rein nach eigenem Geschmack würde ich zwei int-Felder statt des Arrays benutzen, solange dieses dir keinen Vorteil bringt.