Hallo Leute haben ein Problem, dass ich nicht zugreifen kann Feld Tablica [i] -> Hilfe, in generuj Funktion sagt es, dass dieses Feld nicht in der Klasse Task vorhanden ist. Wie kann ich es erreichen?C++ kann nicht auf Feld von geerbter Klasse zugreifen
class Task
{
protected:
string contents;
int id_pyt;
int nr_pyt;
};
class Task4Answ : public Task
{
private:
int help;
public:
Task4Answ(string contents1, int id,int nr,int help1)
{
contents=contents1;
id_pyt=id;
nr_pyt=nr;
help=help1;
}
};
class TaskCollection
{
protected:
Task *collection[60];
public:
friend class Generator;
TaskCollection()
{
collection[0] = new Task4Answ("Ile jest por roku w Polsce? \na) 1 \nb) 2 \nc) 3 \nd) 4",1,0);
collection[1] = new Task4Answ("Kto wygral tegoroczny Roland Garros? \na) Federer \nb) Djokovic \nc) Nadal \nd) Thiem",1,1);
class Generator
{
protected:
Task *tablica[10];
TaskCollection T1;
public:
Generator(){}
void Generuj()
{
if(T1.collection[x]->id_pyt==1)
{
tablica[i]=new Task4Answ("0",0,0);
tablica[i]->contents=T1.collection[x]->contents;
tablica[i]->id_pyt=T1.collection[x]->id_pyt;
tablica[i]->nr_pyt=T1.collection[x]->nr_pyt;
tablica[i]->help=T1.collection[x]->help; //here is the problem
}
}
}
Oder vielleicht gibt es eine andere Lösung des Projekts jetzt tun. Danke für jede Hilfe.
Der 'Task'-Typ hat kein' help'-Element. –
Es sieht aus wie 'tablica' ist ein Array von' task's, aber 'help' ist in' Task4Answ' definiert. – wecsam
1) 'help' existiert nicht in' Task', es existiert in 'Task4Answ'. 2) Selbst wenn dies der Fall ist, ist "Hilfe" privat, so dass Sie sowieso nicht darauf zugreifen könnten.Wahrscheinlich möchten Sie 'help' eine Funktion machen:'/* In Aufgabe */virtual int getHelp() = 0; ','/* In Aufgabe4Answ */int getHelp überschreiben {return help; } ' – 0x5453