#include <iostream.h>
class a {
double x;
public:
void operator++(){
this->x = x+9;
return;
};
friend a operator--(a &b){
b.x = b.x-9;
return b;
};
a operator+(a &c){
(this->x)+=(c.x);
return *this;
};
friend a operator-(a &b, a &c){
a temp;
temp.x=(b.x)-(c.x);
return temp;
};
print(){
cout<<x;
cout<<endl;
};
a(){
x=1;
};
};
int main() {
a kot;
kot.print();
++kot;
cout << endl;
kot.print();
--kot;
kot.print();
a rot, mot;
++rot;
mot = kot+rot;
mot.print();
return 1;
}
Просто перегрузка операторов. При этом минусы - друзья, плюсы - функции члены. Я делаю функции встраиваемыми просто для удобства.
В принципе все работает, но функция Принт вызывает warning. Насколько эффективна программа, нет ли каких других неточностей?
Да, вот еще, как реализуется постфиксная запись? Можно ли делать кардинально разные реализации для разных типов вызова операторов?