I keep receiving this error when trying to overload the * operator to multiply an object by an integer:

" error C2677: binary '*' : no global operator defined which takes type 'class percent' (or there is no acceptable conversion)"

Here is my code:

Any ideas on how to fix?Code:#include <iostream> class percent { private: int whole; int decimal; public: percent(); percent(float z); int getwhole(void); int getdecimal(void); void setwhole(int z); void setdecimal(int z); float getpercent(void) const; void percent::setpercent(float z); void print(void); percent operator+(const percent& z) const; //e = f + g; percent operator-(const percent& z) const; //e = f - g; percent operator*(const percent& z) const; //e = f * g; percent operator/(const percent& z) const; //e = f / g; percent operator*(int z) const; //c = a * f; friend std::ostream& operator<<(std::ostream& y, const percent& z); friend std::istream& operator>>(std::istream& y, percent& z); //c = a / f; //c = c * f; //c = c / f; //c = f * a; //c = a / f; //c = f * c; //c = f / c; //e = f; //e++; //++e; //e--; //--e; //if (e == f) //if (e != f) //if (e > f) //if (e >= f) //if (e < f) //if (e <= f) //cin >> e; //cout << e; }; using namespace std; percent::percent() { whole = 0; decimal = 0; } percent::percent(float z) { whole = z; decimal = (z - whole) * 100; } int percent::getwhole(void) { return whole; } int percent::getdecimal(void) { return decimal; } void percent::setwhole(int z) { whole = z; } void percent::setdecimal(int z) { while (z >= 100) { z = z - 100; whole++; } decimal = z; } float percent::getpercent(void) const { return whole + (decimal) / (100.0); } void percent::setpercent(float z) { whole = z; decimal = (z - whole) * 100; } void percent::print(void) { cout << "Whole: " << whole << endl; cout << "Decimal " << decimal << endl; } percent percent::operator+(const percent& z) const { percent temp; temp.setwhole(whole + z.whole); temp.setdecimal(decimal + z.decimal); return temp; } percent percent::operator-(const percent& z) const { float a, b, c; percent temp; a = getpercent(); b = z.getpercent(); c = a - b; temp.setpercent(c); return temp; } percent percent::operator*(const percent& z) const { float a, b, c; percent temp; a = getpercent(); b = z.getpercent(); c = a * b; temp.setpercent(c); return temp; } percent percent::operator/(const percent& z) const { float a, b, c; percent temp; a = getpercent(); b = z.getpercent(); c = a / b; temp.setpercent(c); return temp; } percent percent::operator*(int z) const { float a, b; percent temp; a = getpercent(); b = a * z; temp.setpercent(b); return temp; } ostream& operator<<(ostream& y, const percent& z) { y << z.whole << "." << z.decimal << "%"; return y; }; istream& operator>>(istream& y, percent& z) { float temp; y >> temp; z.setpercent(temp); return y; }; int main() { int a = 0, b = 0; float c = 0, d = 0; percent f(6); percent e(20); percent g(5); //e.print(); c = a * f; cout << c << endl; return 0; }

Thanks.