ООП / ООП / oop-ekz-tasks / 3 семинар
.docСеминар 3 «Классы: специальные функции и перегрузка операций»
Создать класс coord для работы с двумерными координатами.
Указания.
1. Обеспечить интерфейс класса через конструктор(ы), конструктор(ы) копии, методы Set и Get.
2. Перегрузить операции + - * / = > (бинарные), - (унарная).
3. Обеспечить добавление к координатам точки число с плавающей точкой в любой последовательности (10.0+cCoord и наоборот).
4. Показать все возможные примеры использования объектов класса и отметить вызываемые для этого функции (творческая работа, больше вариантов – лучше, оценивается отдельно).
class Cpoint
{int x, y;
public:
CPoint(int ax=0, int ay=0)
{x=ax; y=at;}
CPoint(const CPoint &a)
{x=a.x; y=a.y;}
void SetXY(int ax, int ay)
{x=ax; y=ay;}
void GetXY(int &ax, int &ay)
{ax=x; ay=y;}
CPoint operator+(CPoint ob)
{CPoint temp;
temp.x=this->x+ob.x;
temp.y=y+ob.y;
return temp;
}
CPoint operator-(CPoint ob)
{CPoint temp;
temp.x=this->x-ob.x;
temp.y=y-ob.y;
return temp;
}
CPoint operator*(CPoint ob)
{CPoint temp;
temp.x=this->x*ob.x;
temp.y=y*ob.y;
return temp;
}
CPoint operator\(CPoint ob)
{CPoint temp;
temp.x=this->x\ob.x;
temp.y=y\ob.y;
return temp;
}
CPoint &operator=(CPoint ob)
{
ob.x=this->x;
ob.y=y;
return *this;
}
CPoint operator+(int i, CPoint ob)
{CPoint temp;
temp.x=ob.x+i;
temp.y=ob.y;
return temp;}
};
int _tmain(int argc, _TCHAR* argv[])
{
CPoint ob(1,2), ob1(10,30), ob3, ob4;
CPoint ob2(ob);
ob3=ob2=ob1;
ob2=3,14+ob1;
ob4=ob1+ob2;
ob3=ob*ob;
return 0;
}