Zuweisung einer Methode
-
Hi All!
Um nicht zu lange um den heißen Brei herumzureden, komme ich gleich zu meinem Problem:
Ich sollte eine Klasse "Bekleidung" schreiben, inklusive einer Methode, die den Zugriff auf eine der private-Variablen erlaubt.
const int laenge = 15; class bekleidung{ private: char name[laenge]; int artikel; double preis; public: bekleidung(); bekleidung(char*, int, double); ~bekleidung(){}; double getpreis() const; void setname(); void setartikel(); void setpreis(); }; double bekleidung::getpreis() const { return preis; } void bekleidung::setname() { cout << "Name: "; cin >> name; } void bekleidung::setartikel() { cout << "Artikel: "; cin >> artikel; } void bekleidung::setpreis() { cout << "Preis (double): "; cin >> preis; } bekleidung::bekleidung() { setname(); setartikel(); setpreis(); } bekleidung::bekleidung(char* p_name,int p_artikel, double p_preis) { strcpy(name, p_name); artikel=p_artikel; preis=p_preis; }
Aber als ich dann die Methode double getpreis() const verwenden wollte:
double durchschnitt(bekleidung class_feld[], int elem) { double s=0.0, d=0.0; for (int i=0; i<=elem; i++) { s = s + class_feld[i].getpreis; } d=s/elem; return d; }
kriege ich folgende Fehlermeldung:
**error C2297: '+' : Ungültig, da der rechte Operand vom Typ 'double (__thiscall bekleidung::*)(void) const' ist
**Was kann man da tun? Ich bin schon fast am Verzweifeln :-)!
Danke im Voraus,
Gin
-
getpreis ist eine Funktion -> also () nicht vergessen:
s = s + class_feld[i].getpreis();und statt s=s+x; schreibt man s+=x;
und ganz sicher dass es <=elem heissen muss in der schleife? ich wäre gefühlsmäßig für <elem
-
:-)) Peinlich, peinlich.... die Klammern vergessen :))
Ok, danke. Wird nie wieder vorkommen (hoffe ich :))