C
*fasst mal den Problembereich zusammen*
enum Decoration {
nothing,
nuts,
sugar
};
class GingerBread:public Cookie{
private:
Decoration deco;
public:
GingerBread(unsigned int weight, Decoration deco);
~GingerBread(){}
virtual unsigned int getCalories()const;
virtual string toString();
};
unsigned int GingerBread::getCalories() const{
unsigned int result = 0;
result = (unsigned int)(this->weight * this->calFactor);
switch (Decoration) {
//korrekt: switch (deco) {
case nothing:
result = (unsigned int)(result * 1);
break;
case nuts:
result = (unsigned int)(result * 1.5);
break;
case sugar:
result = (unsigned int)(result * 1.9);
break;
};
return result;
}
"Decoration" ist der Name des Aufzählungstyps, die Variable von diesem Typ, mit der du vergleichen solltest, wäre "deco" (bzw. "this->deco").