2015-12-15 270 views
0

我需要重载运营商的一类复数 与2个私有成员:重载++运算符

double real; 
    double imag; 

这是构造

complex::complex(double a, double b) { 
    real = a; 
    imag = b; 
} 

这是定原型

complex complex :: operator++ (int x); 

但我不知道这将如何被覆盖,因为

int u = 1; 
int h = 3; 

u++3; 

不起作用

所以怎么会变成这样编译

我只看过

variable++ 

--variable 

这将如何超载?

+0

'+ ='运算符也存在 – AndyG

+0

请注意,对于复数,“++”操作没有明确定义的语义。因此,最好避免执行它。 –

回答

4

后增加运算符签名operator++(int x)中的int x被称为虚拟参数。这实际上并不意味着什么,除了将其与预增加运算符operator++()区分开来。

在函数的主体中,您编写后增量的逻辑,但不要使用x。当您使用variable++时,它获得值0

从技术上说,你可以写variable.operator++(5);然后增量后运算符将被调用x5但是没有真正的理由要这样做。