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 :))


Anmelden zum Antworten