Intereting Posts

simple c ++: как перегрузить оператор умножения, чтобы float * myClass и myClass * float

class MyClass; int main() { float a = 5; MyClass c1; MyClass c2 = a*c1; MyClass c3 = c1*a; } 

Как я могу перегрузить оператор умножения так, чтобы работали как a * c1, так и c1 * a?

Вот так:

 MyClass operator* (float x, const MyClass& y) { //... } MyClass operator* (const MyClass& y, float x) { //... } 

Вторая также может быть функцией-членом:

 class MyClass { //... MyClass operator* (float x); }; 

Первые 2 варианта работают как декларации вне classа.