说我有一个int
,像这样:C++重载`-`运营商(如`* -1`)
int foo = 5;
然后我可以这样做:
int bar = -foo; // -5
我想成为能够对我的班级做同样的事情,那么我如何超载-
运营商,用作* -1
?我是否必须超载*
运营商才能这样做?
说我有一个int
,像这样:C++重载`-`运营商(如`* -1`)
int foo = 5;
然后我可以这样做:
int bar = -foo; // -5
我想成为能够对我的班级做同样的事情,那么我如何超载-
运营商,用作* -1
?我是否必须超载*
运营商才能这样做?
class MyClass
{
friend MyClass operator-(const MyClass& x);
};
或
class MyClass
{
MyClass operator-() const;
};
任你选(虽然我会去的第一个)。
我不明白'-'和'*'必须互相做什么。 – 2013-04-10 18:17:38
把它想象成'0 - foo',而不是'foo * -1'。 – 2013-04-10 18:17:59
@詹姆斯麦克劳林啊,这让我明白了提问者的意思。 – 2013-04-10 18:18:28