Methode um Daten in Struktur einer Klasse zu schreiben
-
Ich habe eine Struktur in einer Klasse (private).
Wie spreche ich nun die einzelnen Variablen der Struktur mit einer Methode an?
[cpp]
-
Hallo
du meinst Getter?
struct TMyStruct { int Zahl; AnsiString Text; }; class TMyClass { private : TMyStruct MyStruct; public : ... const TMyStruct *Get_MyStruct(); // Gesamter Zugriff int Get_Zahl(); // Zugriff aus einzelnen Wert }; // Gesamter Zugriff const TMyStruct * TMyClass::Get_MyStruct() { return(&MyStruct); } // Zugriff aus einzelnen Wert int TMyClass::Get_Zahl() { return(MyStruct.Zahl); }bis bald
akari
-
Danke und Sorry, ich meinte wie schreibe ich in die Struktur.
:p

-
Hallo
indem du Setter dazunimmst :
void TMyClass::Set_Zahl(int NewZahl) { MyStruct.Zahl = NewZahl; }/Edit : bitte las das mit der fetten Schrift, und reduziere deine Smilies.
bis bald
akari
-
Danke, funktioniert!
-
Nächstes Problem:
Ich habe folgende Methoden geschrieben:
public in der Klasse:
void Setpvorname(char *Newpvorname); char Get_pvorname();in der cpp:
void TAdressen::Setpvorname(char *Newpvorname) { strcpy(daten.pvorname, Newpvorname); } char TAdressen::Get_pvorname() { return(*daten.pvorname); }Beim Aufruf im Hauptprogramm:
char buf[150]; ObjektAdressen->Setplz(StrToInt(EditPLZ->Text)); ObjektAdressen->Setpvorname(EditVorname->Text.c_str()); sprintf(buf,"%i %s",ObjektAdressen->Get_plz(), ObjektAdressen->Get_pvorname()); ListBoxDaten->Items->Add(buf);schmiert der Compiler ab!
Was mache ich falsch?
-
Ich markiere dir mal deine Fehler...[cpp]void Setpvorname(char *Newpvorname);
char Get_pvorname(); //Fehler[/cpp]
in der cpp:
[cpp]void TAdressen::Setpvorname(char *Newpvorname)
{
strcpy(daten.pvorname, Newpvorname);
}char TAdressen::Get_pvorname() //Wiederholungsfehler
{
return(*****daten.pvorname) //Fehler;
}[/cpp]- Windoof
-
Hallo
um das, was Windoof angekreidet hat zu vermeiden, benutzt AnsiString statt char *.
bis bald
akari
-
Danke für die Hilfe.
Bin leider noch ein Anfänger in C++.
Wo genau ist dort der Fehler, beziehungsweise was ist dort zu ändern?
-
du musst mit pointern arbeiten.
"char" ist EIN zeichen
"char *" zeigt auf eine zeichenkettechar * TAdressen::Get_pvorname(void)
{
return(daten.pvorname);
}
-
Danke das erklärt alles.
Habe jetzt AnsiString verwendet, ist wirklich eleganter.