简单的 c++:如何重载乘法运算符,以便 float*myClass 和 myClass*float 工作

simple c++: How to overload the multiplication operator so that float*myClass and myClass*float works

本文关键字:float myClass 运算符 以便 工作 c++ 何重载 重载 简单      更新时间:2023-10-16
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 个选项用作类范围之外的声明。