Array über die Klasse
-
Okay folgendes Problem.
Ich versuche über einen buffer eine Zeichenkette in einer Elementvariable zu speichern. Naja schön und gut, aber irgendwie speichert es nur das 1ste Zeichen und jetzt frage ich mich was ich anstellen muss um den ganzen Zeichensatz anzeigen zu können. Help plzCODE:
class aClass
{
public:
aClass();
~aClass();char GetName()const;
void SetName();char *itsName;
};aClass::aClass()
{
itsName = new char[80];
}aClass::~aClass()
{
delete itsName;
}char aClass::GetName()const
{
return *itsName;
}void aClass::SetName()
{
char aName[] = "blah blah asd imghjmn";
strcpy(itsName,aName);
}int main()
{
char buffer[80];cout<<"Name: ";
cin.get(buffer,79);aClass wuteva;
wuteva.SetName();
cout<<wuteva.GetName()<<endl;system("PAUSE");
return 0;
}
-
Wenn GetName() eine Zeichenkette zurückgeben soll, darf der Datentyp nicht char, sondern char* sein, also:
char* aClass::GetName () const { return (itsName); }
Außerdem bitte Code-Tags verwenden.
don promillo schrieb:
system("PAUSE");
Ach, soll dich ein anderer deswegen zusammenscheißen.
Moritz
-
Du benutzt die falsche delete-Variante im Destruktor. Richtig wäre es so:
delete [] itsName;
Hilft dir allerdings nicht bei deinem Problem.
-
fk... mist, jetzt ist alles klar
Okay danke für die Hilfe