Brauche Hilfe bei alter Klausuraufgabe
-
Ich habe folgende Aufgabe bekommen, grundsätzlich verstehe ich wie ich vorgehen muss. Mir bereitet aber das "&" Probleme das hier ab und zu in dem Code steht (bezogen auf die letzten drei Aussagen, die ich nicht zuordnen kann). Was genau bedeutet es, wie muss ich diese Aussagen einsortieren und warum?
Würde mich über eure Hilfe freuen!
Vielen Dank.
Jonny10. Gegeben sind die folgenden Deklarationen:
template<class Typ>
class Liste {
public:
Liste();
void operator+=(Typ**&); // fügt Element ein
void operator+=(Liste<Typ>&**); // fügt komplette Liste ein
bool istLeer(); // ist Liste leer?
bool istVoll(); // ist Liste voll?
bool enthaelt(Typ&); // ist Element enthalten?
private:
double Feld[100]; // speichert Listeneinträge
};
Liste<int> a,b;
Liste<bool> u;
int x = 3;
Wie viele der folgenden Programmzeilen sind syntaktisch korrekt?
a += x;
b += a;
a += u;
u += true;
u += a.istVoll();
u += a.enthaelt(true);
(a) 2
(b) 3
(c) 4
(d) 5
-
Hi.
Erstmal wäre es gut, wenn du dir angewöhnen würdest die cpp Tags zu benutzen, dann sieht das ganze viel besser aus..
In diesem Falle bedeuten die &, dass die Funktion keinen Typen vom Typ "Typ" erwartet, sondern eine Referenz von "Typ". Das heisst, dass da kein Objekt kopiert wird, sondern lediglich eine Referenz übergeben wird. (So etwas ähnliches, wie ein Zeiger).
Um das aber detailierter zu erlären wäre es vermutlich besser, wenn du dir ein geeignetes Anfängerbuch holst. Z.B :
Thinking in C++ : http://www.mindview.net/Books/TICPP/ThinkingInCPP2e.html
oder
Der C++ Primer : http://www.amazon.de/C-Primer-Stanley-B-Lippman/dp/382732274XWeil das nämlich zu den Basics gehört.