Anfängerfrage Kann man eine def. Klasse dann als Array benutzen?
-
Ich bin erst ganz am Anfang, deshalb die simple Frage.
Ich habe eine Klasse definiert (konto), welche 3 Datenfelder (2xString,1 double) enthält. Außerdem gibt es die Methode ausgeben, bei der die 3 Datensätze ausgegeben werden.
Dies funktioniert auch.
Wenn ich jetzt aber in der main() statt einer normalen Var. konto ein Array konto[3] benutze, klappt es nicht mehr.
Kann man dies nicht so machen?
Danke für den Tipp!
Uwe
-
Was heißt «klappt nicht»? Ein bisschen Beispielcode und die Fehlermeldung würden weiterhelfen.
-
Sorry,
#include<iostream>
#include<stdio>
#include<string>
using namespace std;class konto
{
public:string FamName;
string Vorname;
double ist;konto()
{
FamName="";
Vorname="";
ist=0;
}
void ausgeben()
{
cout<<"Name: " << FamName <<endl;
cout<<"Vorname: " << Vorname <<endl;
cout<<"Kontostand: " << ist <<endl;
}
} ;void main()
{konto konto[2];
konto[1].FamName="Sch\x94nfeld";
konto[1].Vorname="Uwe";
konto[1].ist=350;
konto[2].FamName="Maier";
konto[2].Vorname="Jutta";
konto[2].ist=12350;konto[1].ausgeben() ;
konto[2].ausgeben() ;getchar() ;
}
Uwe
-
Die Indexe sind 0 und 1 und nicht 1 und 2..
also
konto konto[2]; konto[0].FamName="Sch\x94nfeld"; konto[0].Vorname="Uwe"; konto[0].ist=350; konto[1].FamName="Maier"; konto[1].Vorname="Jutta"; konto[1].ist=12350;
-
Danke,
in VB kann man dies frei wählen!
Uwe
-
Ich kann mir irgendwie nicht vorstellen wie das gehen soll..
Das ist dann doch irgendwie immer zweideutig? konto[1] ist dann ja je nachdem wie man es eingestellt hat das erste oder zweite Element ?! Was ist wenn ein anderer User das anders eingestellt hat und versucht deinen Quellcode auszuführen?
-
@spk10
dafür gibts in vb die Option direktiven. Diese Direktiven stehen im Quellcode und werden so vom Compiler "gesehen" sodass sich der Index nicht ändert.
-
'VB-Code:
Private Sub btnTest_Click()
Dim intTest(3) As Integer
Dim i%intTest(0) = 0
intTest(1) = 1
intTest(2) = 2
intTest(3) = 3
For i = 0 To 3
MsgBox intTest(i)
Next
End SubDer Index in der dim-Anweisung ist der oberste Wert, welcher angenommen werden kann. D.h. es gibt ein Feld mehr.
Uwe
-
Aha. Alles klar
danke
Dass man das mit Direktiven ändern kann klingt auch plausibel. So ähnlich wie die #pragma's also.
-
Ja so ähnlich wie pragmas.
Option Base 1 definiert also dass das erste Element eines VB-Arrays mit 1 referenziert wird.
Option Base 0 ist i.d.R. standartmäßig eingestellt.