Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ООП / ООП / oop-ekz-tasks / 3 семинар

.doc
Скачиваний:
13
Добавлен:
18.02.2017
Размер:
29.7 Кб
Скачать

Семинар 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;

}

Соседние файлы в папке oop-ekz-tasks