1

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

像这样: int foo = 5 / object;

4

3 回答 3

4

使用自由函数:

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

如果它需要访问您没有接口的私有成员,请在您的类中将其设为好友:

friend int operator/ (const int, const MyClass &);
于 2012-07-21T02:31:00.403 回答
3

使用自由函数而不是成员函数operator/

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

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

int operator/(foo const& x, foo const& y);
于 2012-07-21T02:30:57.983 回答
0

免费功能是您的朋友:

int operator/ (int, const MyClass &);
于 2012-07-21T02:31:32.657 回答