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

时间:2012-04-27 17:03:39

标签: c++ operator-overloading

class MyClass;

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

如何重载乘法运算符以使* c1和c1 * a都有效?

1 个答案:

答案 0 :(得分:19)

像这样:

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

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

第二个也可以是成员函数:

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

前两个选项用作类范围之外的声明。