重载单目运算符++(或 --)作为前缀和后缀:
前缀与后缀重载的语法格式是不同的。
#include
using namespace std;
class Complex {
private:
double i;
double j;
public:
Complex(int = 0, int = 0);
void display();
Complex operator ++();//前缀自增
Complex operator ++(int);//后缀自增,参数需要加int
};
Complex::Complex(int a, int b) {
i = a;
j = b;
}
void Complex::display() {
cout << i << '+' << j << 'i' << endl;
}
Complex Complex::operator ++() {
++i;
++j;
return *this;
}
Complex Complex::operator ++(int) {
Complex temp =*this;
++*this;
return temp;
}
int main()
{
Complex comnum1(2,2), comnum2,comnum3;
cout << "自增计算前:" << endl;
cout << "comnum1:";
comnum1.display();
cout << "comnum2:";
comnum2.display();
cout << "comnum3:";
comnum3.display();
cout << endl;
cout << "前缀自增计算后:" << endl;
comnum2 = ++comnum1;
cout << "comnum1:";
comnum1.display();
cout << "comnum2:";
comnum2.display();
cout << endl;
cout << "后缀自增计算后:" << endl;
comnum3 = comnum1++;
cout << "comnum1:";
comnum1.display();
cout << "comnum3:";
comnum3.display();
return 0;
}
输出结果为:
自增计算前:
comnum1:2+2i
comnum2:0+0i
comnum3:0+0i
前缀自增计算后:
comnum1:3+3i
comnum2:3+3i
后缀自增计算后:
comnum1:4+4i
comnum3:3+3i
Ted
Ted
jm1***3774947@163.com2个月前 (01-06)