Witam!
Mam problem z przeciążeniem operatora operator*. Kod:
class foo
{
public:
foo()
{m_value = 0;}
foo(double a_value)
{m_value = a_value;}
foo operator*(const foo& rhs);
foo& operator=(const foo& rhs);
double m_value;
};
foo foo::operator*(const foo& rhs)
{
return foo(m_value * rhs.m_value);
}
foo& foo::operator=(const foo& rhs)
{
m_value = rhs.m_value;
return *this;
}
int main()
{
foo a(5);
foo b(4);
foo c = a * b; //ok
foo d = a * 2; //ok
foo e = 2 * a; //tu pojawia sie problem
return 0;
}
i właśnie, w zaznaczonej linii wyrzuca mi
error: no match for 'operator*' in '2 * a'
Co należny zrobić aby można było napisać to w ten sposób?
Z góry dziękuje za odpowiedz