"运算符/"的分母

时间:2012-07-21 02:27:53

标签: c++ operator-overloading

有没有办法重载operator/()以使用该类作为分母?

像这样: int foo = 5 / object;

3 个答案:

答案 0 :(得分:4)

使用免费功能:

int operator/ (const int, const MyClass &);

如果需要访问您没有界面的私人会员,请将其作为您班级中的朋友:

friend int operator/ (const int, const MyClass &);

答案 1 :(得分:3)

使用免费功能代替operator/的成员函数。

二元运算符通常具有相同的操作数类型。假设foo有一个非显式构造函数采用int,你会得到:

struct foo
{
  foo(int i) {};
};

int operator/(foo const& x, foo const& y);

答案 2 :(得分:0)

免费功能是你的朋友:

int operator/ (int, const MyClass &);