Перегрузка бинарной операции сложения (может использоваться так же для других бинарных математических операций)
Так что, если ты пользуешься собственным типом данных используй этот пример в качестве шаблона!.
Пользуйся на здоровье! :)

//------------------------------------------------------------------------------------------------
#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;
}
//------------------------------------------------------------------------------------------------

Хакинг | Главная | Программирование

Hosted by uCoz