Wie erkläre ich eine struct innerhalb einer Klasse?
Möchte ich deklarieren Sie eine Struktur innerhalb einer Klasse, das ist privat und ich möchte Ihnen ein Zeichen mit dem Wert einer Variablen in der gleichen Struktur, aber ich kann Sie nicht initialisieren, oder cin es:
class puple
{
private:
struct p
{
char name[25];
int grade;
};
public:
puple(){};
void setme()
{
this->p::grade=99;
this->p::name[25]='g'; //here is the problem
}
void printme()
{
cout<<"Name: "<<this->p::name<<endl;
cout<<"Grade: "<<this->p::grade<<endl;
}
};
void main()
{
puple pu1;
pu1.setme();
pu1.printme();
}
- Sollte dies der Hausaufgaben-tag?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie beschreiben einen Typ namens "p", das ist ein struct. Es ist doch keine Sache des Typs p um. Deshalb ist Ihre
Anrufe keinen Sinn machen.
Versuchen deklarieren
in Ihre Klasse und verwenden Sie es, ie:
Hinweis: auch mit dieser Ihrer Zuordnung zu Namen[25] wird scheitern, wie die erlaubten Indizes für dieses array sind von 0 bis 24 (von insgesamt 25 Elemente).
Haben Sie zwei schwerwiegende Probleme hier
Diese definiert eine struct Typ, namens p. Ich denke, was Sie tun wollte, war,
Diese wird erklären struct, namens S., mit name und Klasse member-Variablen.
Ihre zweite schwerwiegende problem ist, das Sie zuweisen:
Diese weist 'g' auf der 26. element des Arrays name. (arrays sind 0-indiziert)
ist es nicht
nicht
?
Ort der struct-definition außerhalb der Klasse mit einem typedef. Indem ich die struct Definition in Ihrer .cpp-Datei, die es nicht sichtbar von außerhalb der Klasse.