Перегрузка бинарной операции сложения (может использоваться
так же для других бинарных математических операций)
Так что, если ты пользуешься собственным типом данных используй этот пример
в качестве шаблона!.
Пользуйся на здоровье! :)
//------------------------------------------------------------------------------------------------
#include <iostream>
#include <conio.h>
using namespace std;
class Distance
{
private:
int feet;
float inch;
public:
Distance(): feet(0), inch(0)
{}
Distance(int f, float i): feet(f), inch(i)
{}
void display()
{cout<<feet<<" "<<inch;}
Distance operator+ (Distance obj2) //Метод
перегружающий операцию '+'
{
feet=feet+obj2.feet;
inch=inch+obj2.inch;
if(inch>=12)
{
feet+=inch/12;
inch=inch-12*(static_cast<int>(inch)/12);
}
return Distance (feet, inch);
}
};
/////////////////////////////////////////////
int main()
{
Distance lens1(14, 13);
Distance lens2(12, 12.56);
Distance lens3(1, 1);
Distance lens4;
cout<<"lens1 + lens2 + lens3 = lens4"<<endl<<endl;
lens1.display();cout<<" + ";
lens2.display();cout<<" + ";
lens3.display();cout<<" = ";
lens4=lens1+lens2+lens3;
lens4.display();
getch();
return 0;
}
//------------------------------------------------------------------------------------------------